Function at 0x438d40
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bb3f5
mov eax, dword fs:[0]
push eax
sub esp, 0x514
mov eax, dword [0x504e20]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x440], 0
cmp byte [ebx + 0x90], 0
mov dword [ebp - 0x4b8], ebx
jne 0x438e90
lea eax, [ebp - 0x42c]
push eax
call fcn.0040b950
add esp, 4
push 3
push dword [ebp - 0x42c]
lea eax, [ebp - 0x3a0]
lea ecx, [ebp - 0x3a4]
mov dword [ebp - 4], 0
mov dword [ebp - 0x3a4], eax
call fcn.004066f0
push 3
push dword [ebx + 0xf4]
lea eax, [ebp - 0x424]
lea ecx, [ebp - 0x428]
mov byte [ebp - 4], 1
mov dword [ebp - 0x428], eax
call fcn.004066f0
push dword [ebp - 0x428]
mov edi, dword [ebp - 0x3a4]
call fcn.0049819b
push edi
mov esi, eax
call fcn.0049819b
add esp, 8
cmp eax, esi
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x424]
setge bl
cmp eax, ecx
je 0x438e28
push eax
call fcn.00497875
add esp, 4
mov eax, dword [ebp - 0x3a4]
lea ecx, [ebp - 0x3a0]
cmp eax, ecx
je 0x438e41
push eax
call fcn.00497875
add esp, 4
mov edx, dword [ebp - 0x42c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
test bl, bl
je 0x438e73
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x438e6c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, 1
jmp 0x43936b
lea ecx, [edx + 0xc]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x438e8a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x434]
mov byte [ebx + 0x12c], 1
mov eax, dword [0x5049f8]
mov ecx, 0x5049f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x448], eax
push str.downloading_plugins_json
lea ecx, [ebp - 0x43c]
mov dword [ebp - 4], 2
call fcn.00401b70
mov eax, dword [ebx + 0x9c]
lea ecx, [ebx + 0x9c]
cmp dword [eax - 0xc], 0
mov byte [ebp - 4], 3
jne 0x438f0c
mov eax, dword [ebx + 0xf0]
sub eax, 0x10
push eax
call fcn.00404d50
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x44c], esi
lea edi, [ebp - 0x44c]
mov dword [ebp - 0x444], edi
mov byte [ebp - 4], 4
mov ebx, 1
jmp 0x438f39
push str.plugins.json
push ecx
lea eax, [ebp - 0x438]
push eax
call fcn.00402930
add esp, 0xc
mov dword [ebp - 0x444], eax
mov esi, dword [ebp - 0x44c]
mov dword [ebp - 4], 5
mov ebx, 2
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x448]
push eax
mov eax, dword [0x5049f8]
mov ecx, 0x5049f8
mov dword [ebp - 0x440], ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x42c], eax
mov eax, str._ver
mov dword [ebp - 4], 6
test eax, 0xffff0000
jne 0x438f97
movzx edi, ax
push 0
push edi
call fcn.00402da0
add esp, 8
test eax, eax
je 0x438fa7
push edi
push eax
lea ecx, [ebp - 0x42c]
call fcn.00406900
jmp 0x438fa7
push str._ver
lea ecx, [ebp - 0x42c]
call fcn.00402600
mov eax, dword [ebp - 0x434]
add eax, 0xf4
push eax
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x450]
push eax
mov dword [ebp - 4], 7
call fcn.00429840
add esp, 0xc
push eax
mov eax, dword [ebp - 0x444]
push ecx
mov eax, dword [eax]
sub eax, 0x10
mov edi, esp
push eax
mov byte [ebp - 4], 8
call fcn.00404d50
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp - 0x434]
add esp, 4
mov ecx, edi
call fcn.00437010
mov edx, dword [ebp - 0x450]
test al, al
sete byte [ebp - 0x42d]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43902b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x42c]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43904f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 4
test bl, 2
je 0x439084
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
and ebx, 0xfffffffd
mov dword [ebp - 0x440], ebx
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439084
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 3
test bl, 1
je 0x4390ae
add esi, 0xfffffff0
or ebx, 0xffffffff
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4390b1
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4390b1
or ebx, 0xffffffff
mov edx, dword [ebp - 0x43c]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4390d4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x42d], 0
jne 0x439241
mov ecx, dword [0x506280]
push 0
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x12
idiv ecx
mov eax, dword [0x5069c8]
mov ecx, 0xcb319111
mov byte [ebp - 4], 9
cmp edx, 8
cmove eax, ecx
lea ecx, [ebp - 0x4b4]
mov dword [0x5069c8], eax
call fcn.0042e130
mov ecx, dword [0x506280]
mov byte [ebp - 4], 0xa
lea edx, [ecx + 2]
lea eax, [ecx + 1]
imul edx, eax
imul edx, ecx
and edx, 0x80000003
jns 0x43913e
dec edx
or edx, 0xfffffffc
inc edx
cmp edx, 3
jne 0x439164
push 4
call fcn.0049658d
add esp, 4
mov esi, eax
call fcn.00497804
mov dword [esi], eax
push esi
mov dword [0x506280], eax
call fcn.0049655e
add esp, 4
lea ecx, [ebp - 0x414]
call fcn.0042a0d0
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x320]
push eax
mov byte [ebp - 4], 0xb
call fcn.0043f200
add esp, 8
push 1
lea eax, [ebp - 0x4b4]
push eax
lea eax, [ebp - 0x320]
push eax
lea ecx, [ebp - 0x414]
mov byte [ebp - 4], 0xc
call fcn.0042c470
test al, al
jne 0x43926e
push str.parse_plugins_json
lea ecx, [ebp - 0x43c]
call fcn.00401b70
lea eax, [ebp - 0x43c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.00407750
mov edx, dword [ebp - 0x43c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4391f5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x30c], 0x10
jb 0x43920c
push dword [ebp - 0x320]
call fcn.0049655e
add esp, 4
lea ecx, [ebp - 0x414]
mov dword [ebp - 0x30c], 0xf
mov dword [ebp - 0x310], 0
mov byte [ebp - 0x320], 0
call fcn.00402480
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], 9
call fcn.0042e3d0
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x439369
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x439369
push str.plugins_version
lea ecx, [ebp - 0x4b4]
call fcn.0042f7d0
test al, al
je 0x439387
push str.plugins_version
lea ecx, [ebp - 0x4b4]
call fcn.0042e660
mov ecx, eax
call fcn.0042f7f0
test al, al
je 0x439387
push 3
push dword [edi + 0xf4]
lea eax, [ebp - 0x3a0]
lea ecx, [ebp - 0x3a4]
mov dword [ebp - 0x3a4], eax
call fcn.004066f0
push dword [ebp - 0x3a4]
call fcn.0049819b
mov ecx, dword [ebp - 0x3a4]
mov esi, eax
lea eax, [ebp - 0x3a0]
add esp, 4
cmp ecx, eax
je 0x4392ed
push ecx
call fcn.00497875
add esp, 4
mov edx, dword [0x506280]
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
mov ecx, 0x12
idiv ecx
cmp edx, 0xb
jne 0x43931e
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
push str.plugins_version
lea ecx, [ebp - 0x4b4]
call fcn.0042e660
mov ecx, eax
call fcn.0042eee0
cmp esi, eax
je 0x439387
lea ecx, [ebp - 0x320]
call fcn.00401060
lea ecx, [ebp - 0x414]
call fcn.00402480
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], 9
call fcn.0042e3d0
lea ecx, [ebp - 0x448]
call fcn.00401fa0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00496d64
mov esp, ebp
pop ebp
ret
push str.plugins_list
lea ecx, [ebp - 0x4b4]
call fcn.0042e660
push eax
lea ecx, [ebp - 0x4e8]
call fcn.0042def0
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 0xe
call fcn.0042f760
test al, al
jne 0x43940f
push str.invalid_plugins_json
lea ecx, [ebp - 0x43c]
call fcn.00401b70
lea eax, [ebp - 0x43c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xf
call fcn.00407750
mov edx, dword [ebp - 0x43c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4393fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 0xc
call fcn.0042e3d0
jmp 0x4391f5
mov dword [ebp - 0x498], 0
mov dword [ebp - 0x494], 0
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 0
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x484], 0
mov ebx, dword [0x506280]
lea ecx, [ebx + 1]
lea eax, [ebx + 2]
imul eax, ecx
imul eax, ebx
cdq
mov ecx, 0x14
idiv ecx
cmp edx, 0xc
jne 0x4394fd
xor ecx, ecx
mov dword [ebp - 0x42c], ecx
lea eax, [ebp - 0x308]
lea esp, [esp]
xor edx, edx
mov dword [ebp - 0x43c], edx
mov dword [ebp - 0x440], eax
mov edi, edi
lea edi, [edx + 1]
mov eax, ebx
cdq
inc ecx
idiv ecx
mov eax, ebx
mov ecx, ebx
sub ecx, dword [ebp - 0x42c]
mov ebx, dword [ebp - 0x440]
mov esi, edx
cdq
imul esi, ecx
idiv edi
add esi, eax
sub esi, dword [ebp - 0x43c]
push esi
push 0x4c0ba0
call fcn.00497fd7
mov ecx, dword [ebp - 0x42c]
add ebx, 4
mov edx, edi
add esp, 8
mov dword [ebp - 0x440], ebx
mov ebx, dword [0x506280]
mov dword [ebp - 0x43c], edx
cmp edx, 9
jl 0x439490
inc ecx
mov dword [ebp - 0x42c], ecx
cmp ecx, 0x15
jge 0x4394fd
mov eax, dword [ebp - 0x440]
jmp 0x439480
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x480], 0
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x478], 0
call fcn.0043ee90
test al, al
jne 0x439552
mov ecx, 1
test ebx, ebx
cmove ebx, ecx
mov dword [0x506280], ebx
mov dword [ebp - 0x4a4], 0
mov dword [ebp - 0x4a0], 0
mov dword [ebp - 0x49c], 0
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 0
xor esi, esi
mov byte [ebp - 4], 0x15
mov byte [ebp - 0x42d], 1
or ebx, 0xffffffff
lea ecx, [ebp - 0x4e8]
mov dword [ebp - 0x44c], esi
call fcn.0042fb90
cmp esi, eax
jge 0x439b8a
push esi
lea ecx, [ebp - 0x4e8]
call fcn.0042e6a0
mov edi, eax
lea ecx, [ebp - 0x4d8]
mov dword [ebp - 0x444], edi
call fcn.00434cd0
mov eax, dword [0x5049f8]
mov ecx, 0x5049f8
mov byte [ebp - 4], 0x16
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x43c], eax
push 0x4c5a24
mov ecx, edi
mov byte [ebp - 4], 0x17
call fcn.0042e740
mov ecx, eax
call fcn.0042eee0
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x438]
push eax
call fcn.004298c0
add esp, 0xc
push eax
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 4], 0x18
call fcn.00402500
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x17
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439651
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x43c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439674
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x4c5a28
mov ecx, edi
call fcn.0042e740
mov ecx, eax
call fcn.0042eee0
push 0x4c5a2c
mov ecx, edi
mov dword [ebp - 0x4d4], eax
call fcn.0042e740
mov ecx, eax
call fcn.0042ee10
sub esp, 0x18
mov edx, esp
mov esi, eax
mov dword [edx + 0x14], 0xf
mov dword [edx + 0x10], 0
mov byte [edx], 0
cmp byte [esi], 0
jne 0x4396c1
xor ecx, ecx
jmp 0x4396d5
mov ecx, esi
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4396c6
sub ecx, edi
mov edi, dword [ebp - 0x444]
push ecx
push esi
mov ecx, edx
call fcn.00401460
lea eax, [ebp - 0x450]
push eax
call fcn.0043f130
add esp, 0x1c
push eax
lea ecx, [ebp - 0x4d0]
mov byte [ebp - 4], 0x19
call fcn.00402500
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439720
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x4c2f78
mov ecx, edi
call fcn.0042e740
mov ecx, eax
call fcn.0042ee10
sub esp, 0x18
mov edx, esp
mov esi, eax
mov dword [edx + 0x14], 0xf
mov dword [edx + 0x10], 0
mov byte [edx], 0
cmp byte [esi], 0
jne 0x439754
xor ecx, ecx
jmp 0x43976f
mov ecx, esi
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x439760
sub ecx, edi
mov edi, dword [ebp - 0x444]
push ecx
push esi
mov ecx, edx
call fcn.00401460
lea eax, [ebp - 0x440]
push eax
call fcn.0043f130
add esp, 0x1c
push eax
lea ecx, [ebp - 0x4c8]
mov byte [ebp - 4], 0x1a
call fcn.00402500
mov edx, dword [ebp - 0x440]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4397ba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5049f8]
mov ecx, 0x5049f8
mov byte [ebp - 0x4c4], 0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x42c], eax
mov eax, 0x4c5a34
mov byte [ebp - 4], 0x1b
test eax, 0xffff0000
jne 0x439808
movzx esi, ax
push 0
push esi
call fcn.00402da0
add esp, 8
test eax, eax
je 0x43981a
push esi
push eax
lea ecx, [ebp - 0x42c]
call fcn.00406840
jmp 0x43981a
push 2
push 0x4c5a34
lea ecx, [ebp - 0x42c]
call fcn.0043dc00
mov eax, dword [ebp - 0x434]
push str.nova
lea esi, [eax + 0x14c]
push esi
mov byte [ebp - 4], 0x1c
call fcn.00435620
add esp, 8
test al, al
jne 0x439869
push 0x4c550c
push esi
call fcn.00435620
add esp, 8
test al, al
jne 0x439869
push str.castro
push esi
call fcn.00435620
add esp, 8
test al, al
je 0x43987b
push 2
push 0x4c5a3c
jmp 0x439870
push 2
push 0x4c5a38
lea ecx, [ebp - 0x42c]
call fcn.0043dc00
push str.browsers
mov ecx, edi
call fcn.0042e740
push dword [ebp - 0x42c]
mov ecx, eax
call fcn.0042e740
mov ecx, eax
call fcn.0042eda0
push str.enabled
mov ecx, edi
mov bl, al
call fcn.0042e740
mov ecx, eax
call fcn.0042eda0
test bl, bl
je 0x439b49
test al, al
je 0x439b49
mov ecx, dword [0x506280]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x12
idiv ecx
cmp edx, 4
jne 0x4398df
inc dword [0x5069e0]
push str.targets
mov ecx, edi
call fcn.0042e740
push eax
lea ecx, [ebp - 0x4f8]
call fcn.0042def0
mov byte [ebp - 4], 0x1d
xor ebx, ebx
lea ecx, [ebp - 0x4f8]
mov dword [ebp - 0x444], ebx
call fcn.0042fb90
cmp ebx, eax
jge 0x439aaf
mov eax, dword [0x5049f8]
mov ecx, 0x5049f8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x458], esi
push ebx
lea ecx, [ebp - 0x4f8]
mov byte [ebp - 4], 0x1e
call fcn.0042e6a0
push str.order
mov ecx, eax
call fcn.0042e740
mov ecx, eax
call fcn.0042eee0
mov ecx, dword [ebp - 0x4d8]
add esi, 0xfffffff0
lea edx, [ecx - 0x10]
mov dword [ebp - 0x454], eax
cmp edx, esi
je 0x4399b3
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4399a4
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4399a4
push edx
call fcn.00404d50
add esp, 4
mov ebx, eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x439993
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x444]
mov dword [ebp - 0x458], eax
jmp 0x4399b3
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x458]
call fcn.00407df0
push ebx
lea ecx, [ebp - 0x4f8]
call fcn.0042e6a0
push str.run_at
mov ecx, eax
call fcn.0042e740
mov ecx, eax
call fcn.0042eee0
mov esi, eax
test esi, esi
jne 0x4399fd
mov ecx, dword [ebp - 0x434]
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x48c]
push eax
call fcn.00435a90
mov byte [ebp - 0x4c4], 1
jmp 0x439a85
mov edi, dword [ebp - 0x434]
cmp esi, 1
jne 0x439a1d
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x498]
push eax
mov ecx, edi
call fcn.00435a90
cmp esi, 2
jne 0x439a37
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x474]
push eax
mov ecx, edi
call fcn.00435a90
cmp esi, 3
jne 0x439a51
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x480]
push eax
mov ecx, edi
call fcn.00435a90
cmp esi, 4
jne 0x439a6b
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x4a4]
push eax
mov ecx, edi
call fcn.00435a90
cmp esi, 5
jne 0x439a85
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x468]
push eax
mov ecx, edi
call fcn.00435a90
mov edx, dword [ebp - 0x458]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1d
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439aa9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
jmp 0x4398fd
mov esi, dword [ebp - 0x434]
add esi, 0x174
lea ecx, [ebp - 0x4d8]
mov eax, dword [esi + 4]
cmp ecx, eax
jae 0x439b05
mov ecx, dword [esi]
lea edx, [ebp - 0x4d8]
cmp ecx, edx
ja 0x439b05
mov edi, edx
sub edi, ecx
cmp eax, dword [esi + 8]
jne 0x439ae6
push 1
mov ecx, esi
call fcn.0043ec50
mov ecx, dword [esi + 4]
and edi, 0xffffffe0
add edi, dword [esi]
mov dword [ebp - 0x45c], ecx
mov dword [ebp - 0x444], ecx
mov byte [ebp - 4], 0x1f
test ecx, ecx
je 0x439b36
push edi
jmp 0x439b31
cmp eax, dword [esi + 8]
jne 0x439b13
push 1
mov ecx, esi
call fcn.0043ec50
mov ecx, dword [esi + 4]
mov dword [ebp - 0x45c], ecx
mov dword [ebp - 0x444], ecx
mov byte [ebp - 4], 0x20
test ecx, ecx
je 0x439b36
lea eax, [ebp - 0x4d8]
push eax
call fcn.00434c10
add dword [esi + 4], 0x20
lea ecx, [ebp - 0x4f8]
mov byte [ebp - 4], 0x1c
call fcn.0042e3d0
mov edx, dword [ebp - 0x42c]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439b6f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 4], 0x15
call fcn.004353e0
mov esi, dword [ebp - 0x44c]
inc esi
jmp 0x43959e
mov esi, dword [ebp - 0x434]
xorps xmm0, xmm0
lea eax, [esi + 0x150]
push eax
mov dword [ebp - 0x520], 0
movq qword [ebp - 0x51c], xmm0
movq qword [ebp - 0x514], xmm0
movq qword [ebp - 0x50c], xmm0
movq qword [ebp - 0x504], xmm0
mov dword [ebp - 0x4fc], 0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateThread]
xor edi, edi
mov ecx, 0x18
cmp edi, 0xa
jge 0x439d23
mov eax, dword [0x506280]
imul eax, eax
cdq
idiv ecx
mov dword [ebp - 0x438], 0
cmp edx, 0x13
jne 0x439c16
push 4
call fcn.0049658d
mov ecx, dword [0x506280]
add esp, 4
mov dword [eax], ecx
lea eax, [ebp - 0x438]
push eax
push 0
push esi
push 0x43ba10
push 0
push 0
call ebx
mov dword [ebp + edi*4 - 0x520], eax
test eax, eax
jne 0x439d06
lea eax, [ebp - 0x43c]
push eax
call fcn.0043fb50
add esp, 4
mov eax, dword [0x5049f8]
mov ecx, 0x5049f8
mov byte [ebp - 4], 0x21
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x42c], eax
mov eax, str.create_plugin_downloader_thread
mov byte [ebp - 4], 0x22
test eax, 0xffff0000
jne 0x439d0c
movzx esi, ax
push 0
push esi
call fcn.00402da0
add esp, 8
test eax, eax
je 0x439c96
push esi
push eax
lea ecx, [ebp - 0x42c]
call fcn.00406900
mov esi, dword [ebp - 0x434]
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x42c]
push eax
mov byte [ebp - 4], 0x23
call fcn.00412a70
mov edx, dword [ebp - 0x42c]
add edx, 0xfffffff0
add esp, 8
mov byte [ebp - 4], 0x21
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439cda
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x43c]
xor al, al
add edx, 0xfffffff0
mov byte [ebp - 0x42d], al
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439d06
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc edi
jmp 0x439bdc
push 0x1f
push str.create_plugin_downloader_thread
lea ecx, [ebp - 0x42c]
call fcn.00407df0
jmp 0x439c9c
push 0xffffffffffffffff
push 1
lea eax, [ebp - 0x520]
push eax
push 0xa
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
mov edi, edi
push dword [ebp + esi*4 - 0x520]
call edi
inc esi
cmp esi, 0xa
jl 0x439d40
mov ebx, dword [ebp - 0x434]
lea eax, [ebx + 0x150]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor esi, esi
mov eax, dword [ebx + 0x16c]
sub eax, dword [ebx + 0x168]
mov dword [ebp - 0x440], esi
sar eax, 5
cmp esi, eax
jge 0x439f30
lea eax, [ebp - 0x438]
push eax
call fcn.00415d40
mov ecx, dword [eax]
mov edx, dword [ebx + 0x168]
mov edi, esi
shl edi, 5
xor eax, eax
add esp, 4
add edx, edi
test ecx, ecx
setne al
test eax, eax
jne 0x439db4
push 0x80004005
call fcn.00402e10
mov eax, dword [edx + 0xc]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x439ddd
test dx, dx
je 0x439dd9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x439ddd
add eax, 4
add ecx, 4
test dx, dx
jne 0x439db7
xor eax, eax
jmp 0x439de2
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x438]
test eax, eax
sete bl
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439e07
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x439f24
mov eax, dword [0x5049f8]
mov ecx, 0x5049f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x42c], eax
mov eax, str.code_download_failed_because_of_plugin_
mov byte [ebp - 4], 0x24
test eax, 0xffff0000
jne 0x439f0d
movzx esi, ax
push 0
push esi
call fcn.00402da0
add esp, 8
test eax, eax
je 0x439e58
push esi
push eax
lea ecx, [ebp - 0x42c]
call fcn.00406900
mov esi, dword [ebp - 0x440]
mov ebx, dword [ebp - 0x434]
mov byte [ebp - 4], 0x25
mov eax, dword [ebx + 0x168]
add eax, edi
push eax
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.00429840
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x26
call fcn.00407750
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x25
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439eb7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x42c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x439edb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x168]
add ecx, 0xc
push 0x19
add ecx, edi
push str._function__var_a0_____
mov byte [ebp - 0x42d], 0
call fcn.00407df0
mov eax, dword [ebx + 0x168]
inc esi
mov dword [edi + eax + 4], 0
jmp 0x439d64
push 0x27
push str.code_download_failed_because_of_plugin_
lea ecx, [ebp - 0x42c]
call fcn.00407df0
jmp 0x439e5e
mov ebx, dword [ebp - 0x434]
inc esi
jmp 0x439d64
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x438]
push eax
mov ecx, ebx
call fcn.00436400
mov eax, dword [eax]
mov edi, dword [ebx + 0x130]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x27
cmp esi, edi
je 0x43a008
cmp dword [edi + 0xc], 0
jl 0x439ff9
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x439ff9
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x439f94
cmp ecx, dword [esi]
jne 0x439f94
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x439fd1
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x439fa8
call fcn.004080f0
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.00497938
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x439fe8
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x434]
mov dword [ebx + 0x130], eax
jmp 0x43a008
push dword [eax - 0xc]
lea ecx, [ebx + 0x130]
push eax
call fcn.00407df0
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a02c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x48c]
push eax
lea eax, [ebp - 0x438]
push eax
mov ecx, ebx
call fcn.00436400
mov eax, dword [eax]
mov edi, dword [ebx + 0x134]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x28
cmp esi, edi
je 0x43a104
cmp dword [edi + 0xc], 0
jl 0x43a0f5
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x43a0f5
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x43a090
cmp ecx, dword [esi]
jne 0x43a090
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43a0cd
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x43a0a4
call fcn.004080f0
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.00497938
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43a0e4
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x434]
mov dword [ebx + 0x134], eax
jmp 0x43a104
push dword [eax - 0xc]
lea ecx, [ebx + 0x134]
push eax
call fcn.00407df0
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a128
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x474]
push eax
lea eax, [ebp - 0x438]
push eax
mov ecx, ebx
call fcn.00436400
mov eax, dword [eax]
mov edi, dword [ebx + 0x138]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x29
cmp esi, edi
je 0x43a200
cmp dword [edi + 0xc], 0
jl 0x43a1f1
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x43a1f1
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x43a18c
cmp ecx, dword [esi]
jne 0x43a18c
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43a1c9
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x43a1a0
call fcn.004080f0
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.00497938
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43a1e0
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x434]
mov dword [ebx + 0x138], eax
jmp 0x43a200
push dword [eax - 0xc]
lea ecx, [ebx + 0x138]
push eax
call fcn.00407df0
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a224
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x438]
push eax
mov ecx, ebx
call fcn.00436400
mov eax, dword [eax]
mov edi, dword [ebx + 0x13c]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x2a
cmp esi, edi
je 0x43a2fc
cmp dword [edi + 0xc], 0
jl 0x43a2ed
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x43a2ed
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x43a288
cmp ecx, dword [esi]
jne 0x43a288
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43a2c5
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x43a29c
call fcn.004080f0
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.00497938
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43a2dc
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x434]
mov dword [ebx + 0x13c], eax
jmp 0x43a2fc
push dword [eax - 0xc]
lea ecx, [ebx + 0x13c]
push eax
call fcn.00407df0
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a320
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x4a4]
push eax
lea eax, [ebp - 0x438]
push eax
mov ecx, ebx
call fcn.00436400
mov eax, dword [eax]
mov edi, dword [ebx + 0x140]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x2b
cmp esi, edi
je 0x43a3f8
cmp dword [edi + 0xc], 0
jl 0x43a3e9
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x43a3e9
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x43a384
cmp ecx, dword [esi]
jne 0x43a384
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43a3c1
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x43a398
call fcn.004080f0
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.00497938
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43a3d8
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x434]
mov dword [ebx + 0x140], eax
jmp 0x43a3f8
push dword [eax - 0xc]
lea ecx, [ebx + 0x140]
push eax
call fcn.00407df0
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a41c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x438]
push eax
mov ecx, ebx
call fcn.00436400
mov eax, dword [eax]
mov edi, dword [ebx + 0x144]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x2c
cmp esi, edi
je 0x43a4f5
cmp dword [edi + 0xc], 0
jl 0x43a4e6
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x43a4e6
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x43a481
cmp ecx, dword [esi]
jne 0x43a481
mov ebx, esi
mov ecx, 1
lock xadd dword [eax], ecx
inc ecx
jmp 0x43a4be
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x43a495
call fcn.004080f0
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.00497938
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43a4d5
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x434]
mov dword [ebx + 0x144], eax
jmp 0x43a4f5
push dword [eax - 0xc]
lea ecx, [ebx + 0x144]
push eax
call fcn.00407df0
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
or edi, 0xffffffff
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a51b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebx + 0x124], 0
jne 0x43a5b4
lea eax, [ebp - 0x438]
push eax
call fcn.0040ab40
mov edx, dword [ebx + 0x134]
xor ecx, ecx
add esp, 4
test edx, edx
setne cl
test ecx, ecx
jne 0x43a552
push 0x80004005
call fcn.00402e10
mov eax, dword [eax]
mov cx, word [eax]
cmp cx, word [edx]
jne 0x43a57a
test cx, cx
je 0x43a576
mov cx, word [eax + 2]
cmp cx, word [edx + 2]
jne 0x43a57a
add eax, 4
add edx, 4
test cx, cx
jne 0x43a554
xor eax, eax
jmp 0x43a57f
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x438]
test eax, eax
setne bl
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a5a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x43a5b4
mov eax, dword [ebp - 0x434]
mov byte [eax + 0x124], 1
mov ebx, dword [ebp - 0x468]
mov byte [ebp - 4], 0x14
test ebx, ebx
je 0x43a5ff
mov esi, ebx
cmp ebx, dword [ebp - 0x464]
je 0x43a5f6
lea esp, [esp]
mov edx, dword [esi]
sub edx, 0x10
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a5eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x464]
jne 0x43a5d0
push ebx
call fcn.0049655e
add esp, 4
mov ebx, dword [ebp - 0x4a4]
mov byte [ebp - 4], 0x13
test ebx, ebx
je 0x43a646
mov esi, ebx
cmp ebx, dword [ebp - 0x4a0]
je 0x43a63d
mov edx, dword [esi]
sub edx, 0x10
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a632
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x4a0]
jne 0x43a617
push ebx
call fcn.0049655e
add esp, 4
mov ebx, dword [ebp - 0x480]
mov byte [ebp - 4], 0x12
test ebx, ebx
je 0x43a68f
mov esi, ebx
cmp ebx, dword [ebp - 0x47c]
je 0x43a686
mov edi, edi
mov edx, dword [esi]
sub edx, 0x10
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a67b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x47c]
jne 0x43a660
push ebx
call fcn.0049655e
add esp, 4
mov ebx, dword [ebp - 0x474]
mov byte [ebp - 4], 0x11
test ebx, ebx
je 0x43a6d6
mov esi, ebx
cmp ebx, dword [ebp - 0x470]
je 0x43a6cd
mov edx, dword [esi]
sub edx, 0x10
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a6c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x470]
jne 0x43a6a7
push ebx
call fcn.0049655e
add esp, 4
mov ebx, dword [ebp - 0x48c]
mov byte [ebp - 4], 0x10
test ebx, ebx
je 0x43a71f
mov esi, ebx
cmp ebx, dword [ebp - 0x488]
je 0x43a716
mov edi, edi
mov edx, dword [esi]
sub edx, 0x10
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a70b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x488]
jne 0x43a6f0
push ebx
call fcn.0049655e
add esp, 4
mov ebx, dword [ebp - 0x498]
mov byte [ebp - 4], 0xe
test ebx, ebx
je 0x43a766
mov esi, ebx
cmp ebx, dword [ebp - 0x494]
je 0x43a75d
mov edx, dword [esi]
sub edx, 0x10
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43a752
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x494]
jne 0x43a737
push ebx
call fcn.0049655e
add esp, 4
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 0xc
call fcn.0042e3d0
cmp dword [ebp - 0x30c], 0x10
jb 0x43a78c
push dword [ebp - 0x320]
call fcn.0049655e
add esp, 4
lea ecx, [ebp - 0x414]
mov dword [ebp - 0x30c], 0xf
mov dword [ebp - 0x310], 0
mov byte [ebp - 0x320], 0
call fcn.00402480
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], 9
call fcn.0042e3d0
mov esi, dword [ebp - 0x448]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x43a7e5
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x42d]
jmp 0x43936b