Function at 0x43f160
Capabilities:
Create thread
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c2d7c
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x129fc
call fcn.0049f630
mov eax, dword [0x515e20]
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 - 0x12918], ebx
mov dword [ebp - 0x1292c], 0
cmp byte [ebx + 0x94], 0
mov dword [ebp - 0x129a4], ebx
jne 0x43f2de
lea eax, [ebp - 0x12920]
push eax
call fcn.0040d4a0
add esp, 4
push 3
push dword [ebp - 0x12920]
lea eax, [ebp - 0x1288c]
lea ecx, [ebp - 0x12890]
mov dword [ebp - 4], 0
mov dword [ebp - 0x12890], eax
call fcn.00406900
push 3
push dword [ebx + 0xf8]
lea eax, [ebp - 0x12910]
lea ecx, [ebp - 0x12914]
mov byte [ebp - 4], 1
mov dword [ebp - 0x12914], eax
call fcn.00406900
push dword [ebp - 0x12914]
mov edi, dword [ebp - 0x12890]
call fcn.0049f7b2
push edi
mov esi, eax
call fcn.0049f7b2
add esp, 8
cmp eax, esi
mov eax, dword [ebp - 0x12914]
lea ecx, [ebp - 0x12910]
setge bl
cmp eax, ecx
je 0x43f24d
push eax
call fcn.0049eda5
add esp, 4
mov eax, dword [ebp - 0x12890]
lea ecx, [ebp - 0x1288c]
cmp eax, ecx
je 0x43f266
push eax
call fcn.0049eda5
add esp, 4
test bl, bl
je 0x43f2b1
call fcn.00445590
test al, al
jne 0x43f283
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov edx, dword [ebp - 0x12920]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43f2aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, 1
jmp 0x440d71
mov edx, dword [ebp - 0x12920]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [edx + 0xc]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43f2d8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x12918]
mov byte [ebx + 0x130], 1
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x12934], eax
push str.downloading_plugins_json
lea ecx, [ebp - 0x12928]
mov dword [ebp - 4], 2
call fcn.00401c40
mov eax, dword [ebx + 0xa0]
lea ecx, [ebx + 0xa0]
cmp dword [eax - 0xc], 0
mov byte [ebp - 4], 3
jne 0x43f35a
mov eax, dword [ebx + 0xf4]
sub eax, 0x10
push eax
call fcn.00404f90
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x1293c], esi
lea edi, [ebp - 0x1293c]
mov dword [ebp - 0x12930], edi
mov byte [ebp - 4], 4
mov ebx, 1
jmp 0x43f387
push str.plugins.json
push ecx
lea eax, [ebp - 0x12924]
push eax
call fcn.00402ae0
add esp, 0xc
mov dword [ebp - 0x12930], eax
mov esi, dword [ebp - 0x1293c]
mov dword [ebp - 4], 5
mov ebx, 2
lea eax, [ebp - 0x12928]
push eax
lea eax, [ebp - 0x12934]
push eax
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
mov dword [ebp - 0x1292c], ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x12920], eax
mov eax, str._ver
mov dword [ebp - 4], 6
test eax, 0xffff0000
jne 0x43f3e5
movzx edi, ax
push 0
push edi
call fcn.00403010
add esp, 8
test eax, eax
je 0x43f3f5
push edi
push eax
lea ecx, [ebp - 0x12920]
call fcn.00406b10
jmp 0x43f3f5
push str._ver
lea ecx, [ebp - 0x12920]
call fcn.00402750
mov eax, dword [ebp - 0x12918]
add eax, 0xf8
push eax
lea eax, [ebp - 0x12920]
push eax
lea eax, [ebp - 0x12938]
push eax
mov dword [ebp - 4], 7
call fcn.0042fa40
add esp, 0xc
push eax
mov eax, dword [ebp - 0x12930]
push ecx
mov eax, dword [eax]
sub eax, 0x10
mov edi, esp
push eax
mov byte [ebp - 4], 8
call fcn.00404f90
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp - 0x12918]
add esp, 4
mov ecx, edi
call fcn.0043d240
mov edx, dword [ebp - 0x12938]
test al, al
sete byte [ebp - 0x12919]
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 0x43f479
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x12920]
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 0x43f49d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 4
test bl, 2
je 0x43f4d2
mov edx, dword [ebp - 0x12924]
add edx, 0xfffffff0
and ebx, 0xfffffffd
mov dword [ebp - 0x1292c], ebx
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43f4d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 3
test bl, 1
je 0x43f4fc
add esi, 0xfffffff0
or ebx, 0xffffffff
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43f4ff
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x43f4ff
or ebx, 0xffffffff
mov edx, dword [ebp - 0x12928]
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 0x43f522
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x12919], 0
jne 0x43f669
push 0
lea ecx, [ebp - 0x129a0]
mov byte [ebp - 4], 9
call fcn.00434340
lea ecx, [ebp - 0x12900]
mov byte [ebp - 4], 0xa
call fcn.00430310
mov esi, dword [0x517280]
mov dword [ebp - 0x12924], 0x11
lea ecx, [esi + 1]
mov eax, ecx
imul eax, esi
cdq
idiv dword [ebp - 0x12924]
lea eax, [ebp - 0x12934]
push eax
lea eax, [ebp - 0x1280c]
push eax
mov byte [ebp - 4], 0xb
cmp edx, 0xb
cmove esi, ecx
mov dword [0x517280], esi
call fcn.00445e60
add esp, 8
mov byte [ebp - 4], 0xc
call fcn.004455f0
test al, al
jne 0x43f5b5
mov eax, dword [0x517280]
mov esi, 1
test eax, eax
cmove eax, esi
mov dword [0x517280], eax
push 1
lea eax, [ebp - 0x129a0]
push eax
lea eax, [ebp - 0x1280c]
push eax
lea ecx, [ebp - 0x12900]
call fcn.00432680
test al, al
jne 0x43f696
push str.parse_plugins_json
lea ecx, [ebp - 0x12928]
call fcn.00401c40
lea eax, [ebp - 0x12928]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.004086a0
mov edx, dword [ebp - 0x12928]
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 0x43f61d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x127f8], 0x10
jb 0x43f634
push dword [ebp - 0x1280c]
call fcn.0049da8e
add esp, 4
lea ecx, [ebp - 0x12900]
mov dword [ebp - 0x127f8], 0xf
mov dword [ebp - 0x127fc], 0
mov byte [ebp - 0x1280c], 0
call fcn.00402590
lea ecx, [ebp - 0x129a0]
mov byte [ebp - 4], 9
call fcn.004345e0
mov edx, dword [ebp - 0x12934]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x440d6f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x440d6f
push str.plugins_version
lea ecx, [ebp - 0x129a0]
call fcn.00435950
test al, al
je 0x43f821
push str.plugins_version
lea ecx, [ebp - 0x129a0]
call fcn.00434870
mov ecx, eax
call fcn.00435970
mov ebx, dword [ebp - 0x12918]
test al, al
je 0x43f827
push 3
push dword [ebx + 0xf8]
lea eax, [ebp - 0x1288c]
lea ecx, [ebp - 0x12890]
mov dword [ebp - 0x12890], eax
call fcn.00406900
push dword [ebp - 0x12890]
call fcn.0049f7b2
mov ecx, dword [ebp - 0x12890]
mov esi, eax
lea eax, [ebp - 0x1288c]
add esp, 4
cmp ecx, eax
je 0x43f71b
push ecx
call fcn.0049eda5
add esp, 4
push str.plugins_version
lea ecx, [ebp - 0x129a0]
call fcn.00434870
mov ecx, eax
call fcn.00435050
cmp esi, eax
je 0x43f827
call fcn.004456e0
test al, al
jne 0x43f7a5
xor esi, esi
call fcn.0049ed34
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x12764], xmm0
cmp esi, 0x28
jb 0x43f745
xor ecx, ecx
mov eax, 0x27
cmp ecx, eax
jge 0x43f79f
lea esp, [esp]
movsd xmm0, qword [ebp + eax*8 - 0x1275c]
movsd xmm1, qword [ebp + eax*8 - 0x12764]
comisd xmm0, xmm1
jbe 0x43f79a
movsd qword [ebp + eax*8 - 0x1275c], xmm1
movsd qword [ebp + eax*8 - 0x12764], xmm0
dec eax
cmp eax, ecx
jg 0x43f770
inc ecx
cmp ecx, 0x28
jl 0x43f763
cmp dword [ebp - 0x127f8], 0x10
jb 0x43f7bc
push dword [ebp - 0x1280c]
call fcn.0049da8e
add esp, 4
lea ecx, [ebp - 0x12900]
mov dword [ebp - 0x127f8], 0xf
mov dword [ebp - 0x127fc], 0
mov byte [ebp - 0x1280c], 0
call fcn.00402590
lea ecx, [ebp - 0x129a0]
mov byte [ebp - 4], 9
call fcn.004345e0
mov edx, dword [ebp - 0x12934]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440d6f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x440d6f
mov ebx, dword [ebp - 0x12918]
push str.plugins_list
lea ecx, [ebp - 0x129a0]
call fcn.00434870
push eax
lea ecx, [ebp - 0x129b4]
call fcn.00434100
lea ecx, [ebp - 0x129b4]
mov byte [ebp - 4], 0xe
call fcn.004358e0
test al, al
jne 0x43f903
call fcn.004455c0
test al, al
jne 0x43f8a7
mov esi, dword [0x517280]
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x2f4]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0049d210
add esp, 4
push eax
call fcn.0049ee63
add esp, 4
push str.invalid_plugins_json
lea ecx, [ebp - 0x12928]
call fcn.00401c40
lea eax, [ebp - 0x12928]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.004086a0
mov edx, dword [ebp - 0x12928]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43f8ef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x129b4]
mov byte [ebp - 4], 0xc
call fcn.004345e0
jmp 0x43f61d
mov dword [ebp - 0x1296c], 0
mov dword [ebp - 0x12968], 0
mov dword [ebp - 0x12964], 0
mov dword [ebp - 0x12978], 0
mov dword [ebp - 0x12974], 0
mov dword [ebp - 0x12970], 0
mov dword [ebp - 0x12984], 0
mov dword [ebp - 0x12980], 0
mov dword [ebp - 0x1297c], 0
mov dword [ebp - 0x12990], 0
mov dword [ebp - 0x1298c], 0
mov dword [ebp - 0x12988], 0
mov dword [ebp - 0x12954], 0
mov dword [ebp - 0x12950], 0
mov dword [ebp - 0x1294c], 0
mov dword [ebp - 0x12960], 0
mov dword [ebp - 0x1295c], 0
mov dword [ebp - 0x12958], 0
xor edi, edi
mov byte [ebp - 4], 0x15
mov byte [ebp - 0x12919], 1
or esi, 0xffffffff
lea ecx, [ebp - 0x129b4]
mov dword [ebp - 0x1293c], edi
call fcn.00435d10
cmp edi, eax
jge 0x43ffaa
push edi
lea ecx, [ebp - 0x129b4]
call fcn.004348b0
mov edi, eax
lea ecx, [ebp - 0x129d4]
mov dword [ebp - 0x12930], edi
call fcn.0043ae50
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0x16
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x12928], eax
push 0x4d6cec
mov ecx, edi
mov byte [ebp - 4], 0x17
call fcn.00434950
mov ecx, eax
call fcn.00435050
push eax
lea eax, [ebp - 0x12928]
push eax
lea eax, [ebp - 0x12924]
push eax
call fcn.0042fb00
add esp, 0xc
push eax
lea ecx, [ebp - 0x129d4]
mov byte [ebp - 4], 0x18
call fcn.00402610
mov edx, dword [ebp - 0x12924]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x17
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43fa7a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x12928]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43fa9d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x4d6cf0
mov ecx, edi
call fcn.00434950
mov ecx, eax
call fcn.00435050
push 0x4d6cf4
mov ecx, edi
mov dword [ebp - 0x129d0], eax
call fcn.00434950
mov ecx, eax
call fcn.00435260
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 0x43faea
xor ecx, ecx
jmp 0x43faff
mov ecx, esi
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43faf0
sub ecx, edi
mov edi, dword [ebp - 0x12930]
push ecx
push esi
mov ecx, edx
call fcn.00401460
lea eax, [ebp - 0x12938]
push eax
call fcn.00445d90
add esp, 0x1c
push eax
lea ecx, [ebp - 0x129cc]
mov byte [ebp - 4], 0x19
call fcn.00402610
mov edx, dword [ebp - 0x12938]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43fb4b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x4d4220
mov ecx, edi
call fcn.00434950
mov ecx, eax
call fcn.00435260
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 0x43fb7f
xor ecx, ecx
jmp 0x43fb93
mov ecx, esi
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43fb84
sub ecx, edi
mov edi, dword [ebp - 0x12930]
push ecx
push esi
mov ecx, edx
call fcn.00401460
lea eax, [ebp - 0x1292c]
push eax
call fcn.00445d90
add esp, 0x1c
push eax
lea ecx, [ebp - 0x129c4]
mov byte [ebp - 4], 0x1a
call fcn.00402610
mov edx, dword [ebp - 0x1292c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43fbdf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x4d6cfc
lea ecx, [ebp - 0x12920]
mov byte [ebp - 0x129c0], 0
call fcn.00401a80
lea esi, [ebx + 0x150]
push str.nova
push esi
mov byte [ebp - 4], 0x1b
call fcn.0043b760
add esp, 8
test al, al
jne 0x43fc48
push 0x4d67cc
push esi
call fcn.0043b760
add esp, 8
test al, al
jne 0x43fc48
push str.castro
push esi
call fcn.0043b760
add esp, 8
test al, al
je 0x43fc5a
push 0x4d6d04
lea ecx, [ebp - 0x12920]
call fcn.00402680
jmp 0x43fc5a
push 2
push 0x4d6d00
lea ecx, [ebp - 0x12920]
call fcn.00408e30
mov esi, dword [ebp - 0x12920]
push str.browsers
mov ecx, edi
call fcn.00434950
push esi
mov ecx, eax
call fcn.00434950
mov ecx, eax
call fcn.00434f20
push str.enabled
mov ecx, edi
mov bl, al
call fcn.00434950
mov ecx, eax
call fcn.00434f20
test bl, bl
je 0x43ff63
test al, al
je 0x43ff63
push str.targets
mov ecx, edi
call fcn.00434950
push eax
lea ecx, [ebp - 0x129e4]
call fcn.00434100
mov byte [ebp - 4], 0x1c
call fcn.00445730
test al, al
jne 0x43fcdc
push 0xb1
push 0xb0
push str._d__d_n
call fcn.0049f507
add esp, 0xc
xor ebx, ebx
lea ecx, [ebp - 0x129e4]
mov dword [ebp - 0x12930], ebx
call fcn.00435d10
cmp ebx, eax
jge 0x43fee3
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x12944], eax
mov ecx, dword [0x517280]
mov byte [ebp - 4], 0x1d
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x14
idiv ecx
cmp edx, 0x13
jne 0x43fd5e
push 0x28
call fcn.0049d210
add esp, 4
mov edi, eax
xor esi, esi
call fcn.0049ed34
add eax, dword [0x517280]
inc esi
mov dword [edi + esi*4 - 4], eax
cmp esi, 0xa
jl 0x43fd38
mov eax, dword [edi + 0x24]
push edi
mov dword [0x517280], eax
call fcn.0049ee63
add esp, 4
push ebx
lea ecx, [ebp - 0x129e4]
call fcn.004348b0
push str.order
mov ecx, eax
call fcn.00434950
mov ecx, eax
call fcn.00435050
mov ecx, dword [ebp - 0x129d4]
mov esi, dword [ebp - 0x12944]
lea edx, [ecx - 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x12940], eax
cmp edx, esi
je 0x43fde7
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x43fdd8
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x43fdd8
push edx
call fcn.00404f90
add esp, 4
mov ebx, eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x43fdc7
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x12930]
mov dword [ebp - 0x12944], eax
jmp 0x43fde7
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x12944]
call fcn.00408ed0
push ebx
lea ecx, [ebp - 0x129e4]
call fcn.004348b0
push str.run_at
mov ecx, eax
call fcn.00434950
mov ecx, eax
call fcn.00435050
mov esi, eax
test esi, esi
jne 0x43fe31
mov ecx, dword [ebp - 0x12918]
lea eax, [ebp - 0x12944]
push eax
lea eax, [ebp - 0x12978]
push eax
call fcn.0043bbd0
mov byte [ebp - 0x129c0], 1
jmp 0x43feb9
mov edi, dword [ebp - 0x12918]
cmp esi, 1
jne 0x43fe51
lea eax, [ebp - 0x12944]
push eax
lea eax, [ebp - 0x1296c]
push eax
mov ecx, edi
call fcn.0043bbd0
cmp esi, 2
jne 0x43fe6b
lea eax, [ebp - 0x12944]
push eax
lea eax, [ebp - 0x12984]
push eax
mov ecx, edi
call fcn.0043bbd0
cmp esi, 3
jne 0x43fe85
lea eax, [ebp - 0x12944]
push eax
lea eax, [ebp - 0x12990]
push eax
mov ecx, edi
call fcn.0043bbd0
cmp esi, 4
jne 0x43fe9f
lea eax, [ebp - 0x12944]
push eax
lea eax, [ebp - 0x12954]
push eax
mov ecx, edi
call fcn.0043bbd0
cmp esi, 5
jne 0x43feb9
lea eax, [ebp - 0x12944]
push eax
lea eax, [ebp - 0x12960]
push eax
mov ecx, edi
call fcn.0043bbd0
mov edx, dword [ebp - 0x12944]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1c
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43fedd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
jmp 0x43fcde
mov ebx, dword [ebp - 0x12918]
lea eax, [ebp - 0x129d4]
push eax
lea ecx, [ebx + 0x178]
call fcn.004457f0
mov esi, dword [0x517280]
mov ecx, 0xf
lea eax, [esi + 1]
imul eax, esi
cdq
idiv ecx
cmp edx, 1
jne 0x43ff52
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x141]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0049d210
add esp, 4
push eax
call fcn.0049ee63
add esp, 4
lea ecx, [ebp - 0x129e4]
mov byte [ebp - 4], 0x1b
call fcn.004345e0
jmp 0x43ff69
mov ebx, dword [ebp - 0x12918]
mov edx, dword [ebp - 0x12920]
add edx, 0xfffffff0
or esi, 0xffffffff
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43ff8f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x129d4]
mov byte [ebp - 4], 0x15
call fcn.0043b520
mov edi, dword [ebp - 0x1293c]
inc edi
jmp 0x43f9c7
xorps xmm0, xmm0
lea eax, [ebx + 0x154]
push eax
mov dword [ebp - 0x12a0c], 0
movq qword [ebp - 0x12a08], xmm0
movq qword [ebp - 0x12a00], xmm0
movq qword [ebp - 0x129f8], xmm0
movq qword [ebp - 0x129f0], xmm0
mov dword [ebp - 0x129e8], 0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateThread]
xor edi, edi
mov esi, str.create_plugin_downloader_thread
cmp edi, 0xa
jge 0x4401a1
lea eax, [ebp - 0x12924]
push eax
push 0
push dword [ebp - 0x12918]
mov dword [ebp - 0x12924], 0
push 0x442070
push 0
push 0
call ebx
mov ecx, dword [0x517280]
mov dword [ebp + edi*4 - 0x12a0c], eax
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x16
idiv ecx
cmp edx, 0xa
jne 0x4400ba
xor esi, esi
lea ebx, [ebx]
call fcn.0049ed34
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x127fc], xmm0
cmp esi, 0x3b
jb 0x440050
xor ecx, ecx
mov edi, edi
mov eax, 0x3a
cmp ecx, eax
jge 0x4400af
lea esp, [esp]
movsd xmm0, qword [ebp + eax*8 - 0x127f4]
movsd xmm1, qword [ebp + eax*8 - 0x127fc]
comisd xmm0, xmm1
jbe 0x4400aa
movsd qword [ebp + eax*8 - 0x127f4], xmm1
movsd qword [ebp + eax*8 - 0x127fc], xmm0
dec eax
cmp eax, ecx
jg 0x440080
inc ecx
cmp ecx, 0x3b
jl 0x440070
mov esi, str.create_plugin_downloader_thread
cmp dword [ebp + edi*4 - 0x12a0c], 0
jne 0x44019b
lea eax, [ebp - 0x12928]
push eax
call fcn.00446bb0
add esp, 4
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0x1e
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x12920], eax
mov byte [ebp - 4], 0x1f
test esi, 0xffff0000
jne 0x44011e
movzx esi, si
push 0
push esi
call fcn.00403010
add esp, 8
test eax, eax
je 0x440130
push esi
push eax
lea ecx, [ebp - 0x12920]
call fcn.00406b10
jmp 0x440130
push 0x1f
push str.create_plugin_downloader_thread
lea ecx, [ebp - 0x12920]
call fcn.00408ed0
lea eax, [ebp - 0x12928]
push eax
lea eax, [ebp - 0x12920]
push eax
mov byte [ebp - 4], 0x20
call fcn.004155b0
mov edx, dword [ebp - 0x12920]
add edx, 0xfffffff0
or esi, 0xffffffff
add esp, 8
mov byte [ebp - 4], 0x1e
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440170
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x12928]
xor al, al
add edx, 0xfffffff0
mov byte [ebp - 0x12919], al
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44019b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc edi
jmp 0x43fff6
push 0xffffffffffffffff
push 1
lea eax, [ebp - 0x12a0c]
push eax
push 0xa
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
lea esp, [esp]
push dword [ebp + esi*4 - 0x12a0c]
call edi
inc esi
cmp esi, 0xa
jl 0x4401c0
mov ebx, dword [ebp - 0x12918]
lea eax, [ebx + 0x154]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor esi, esi
mov eax, dword [ebx + 0x170]
sub eax, dword [ebx + 0x16c]
mov dword [ebp - 0x1292c], esi
sar eax, 5
cmp esi, eax
jge 0x4403d1
lea eax, [ebp - 0x12924]
push eax
call fcn.00418d20
mov ecx, dword [eax]
mov edx, dword [ebx + 0x16c]
mov edi, esi
shl edi, 5
xor eax, eax
add esp, 4
add edx, edi
test ecx, ecx
setne al
test eax, eax
jne 0x440234
push 0x80004005
call fcn.00403080
mov eax, dword [edx + 0xc]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44025d
test dx, dx
je 0x440259
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44025d
add eax, 4
add ecx, 4
test dx, dx
jne 0x440237
xor eax, eax
jmp 0x440262
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x12924]
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 0x440287
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x4403a0
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x12920], eax
mov eax, str.code_download_failed_because_of_plugin_
mov byte [ebp - 4], 0x21
test eax, 0xffff0000
jne 0x440389
movzx esi, ax
push 0
push esi
call fcn.00403010
add esp, 8
test eax, eax
je 0x4402d8
push esi
push eax
lea ecx, [ebp - 0x12920]
call fcn.00406b10
mov esi, dword [ebp - 0x1292c]
mov ebx, dword [ebp - 0x12918]
mov byte [ebp - 4], 0x22
mov eax, dword [ebx + 0x16c]
add eax, edi
push eax
lea eax, [ebp - 0x12920]
push eax
lea eax, [ebp - 0x12938]
push eax
call fcn.0042fa40
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x23
call fcn.004086a0
mov edx, dword [ebp - 0x12938]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x22
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440337
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x12920]
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 0x44035b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x16c]
add ecx, 0xc
push 0x19
add ecx, edi
push str._function__var_a0_____
mov byte [ebp - 0x12919], 0
call fcn.00408ed0
mov eax, dword [ebx + 0x16c]
mov dword [edi + eax + 4], 0
jmp 0x4403a6
push 0x27
push str.code_download_failed_because_of_plugin_
lea ecx, [ebp - 0x12920]
call fcn.00408ed0
jmp 0x4402de
mov ebx, dword [ebp - 0x12918]
mov eax, dword [0x517280]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 0x8000000f
jns 0x4403be
dec ecx
or ecx, 0xfffffff0
inc ecx
cmp ecx, 0xb
jne 0x4403cb
push 0
call dword [sym.imp.KERNEL32.dll_GetFileType]
inc esi
jmp 0x4401e4
lea eax, [ebp - 0x1296c]
push eax
lea eax, [ebp - 0x12924]
push eax
mov ecx, ebx
call fcn.0043c5c0
mov eax, dword [eax]
mov edi, dword [ebx + 0x134]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x24
cmp esi, edi
je 0x4404a9
cmp dword [edi + 0xc], 0
jl 0x44049a
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x44049a
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x440435
cmp ecx, dword [esi]
jne 0x440435
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x440472
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x440449
call fcn.004092c0
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.0049ee68
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x440489
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x12918]
mov dword [ebx + 0x134], eax
jmp 0x4404a9
push dword [eax - 0xc]
lea ecx, [ebx + 0x134]
push eax
call fcn.00408ed0
mov edx, dword [ebp - 0x12924]
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 0x4404cd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x12978]
push eax
lea eax, [ebp - 0x12924]
push eax
mov ecx, ebx
call fcn.0043c5c0
mov eax, dword [eax]
mov edi, dword [ebx + 0x138]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x25
cmp esi, edi
je 0x4405a5
cmp dword [edi + 0xc], 0
jl 0x440596
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x440596
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x440531
cmp ecx, dword [esi]
jne 0x440531
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x44056e
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x440545
call fcn.004092c0
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.0049ee68
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x440585
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x12918]
mov dword [ebx + 0x138], eax
jmp 0x4405a5
push dword [eax - 0xc]
lea ecx, [ebx + 0x138]
push eax
call fcn.00408ed0
mov edx, dword [ebp - 0x12924]
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 0x4405c9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x517280]
imul eax, eax
cdq
mov ecx, 0xb
idiv ecx
cmp edx, 2
jne 0x44064b
xor eax, eax
push 0x12606
push eax
mov word [ebp - 0x1261c], ax
lea eax, [ebp - 0x1261a]
push eax
call fcn.0049f660
add esp, 0xc
xor edi, edi
xor esi, esi
xor edx, edx
test edi, edi
je 0x44062a
test edx, edx
je 0x44062a
lea eax, [edx + esi]
lea ecx, [edx + esi]
mov ax, word [ebp + eax*2 - 0x127a0]
inc ax
add ax, word [ebp + ecx*2 - 0x1261e]
mov word [ebp + ecx*2 - 0x1261c], ax
inc edx
cmp edx, 0xc2
jl 0x440602
add esi, 0xc2
inc edi
cmp esi, 0x9304
jl 0x440600
movsx eax, word [ebp - 0x16]
mov dword [0x517280], eax
lea eax, [ebp - 0x12984]
push eax
lea eax, [ebp - 0x12924]
push eax
mov ecx, ebx
call fcn.0043c5c0
mov eax, dword [eax]
mov edi, dword [ebx + 0x13c]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x26
cmp esi, edi
je 0x440723
cmp dword [edi + 0xc], 0
jl 0x440714
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x440714
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x4406af
cmp ecx, dword [esi]
jne 0x4406af
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4406ec
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x4406c3
call fcn.004092c0
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.0049ee68
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x440703
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x12918]
mov dword [ebx + 0x13c], eax
jmp 0x440723
push dword [eax - 0xc]
lea ecx, [ebx + 0x13c]
push eax
call fcn.00408ed0
mov edx, dword [ebp - 0x12924]
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 0x440747
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x12990]
push eax
lea eax, [ebp - 0x12924]
push eax
mov ecx, ebx
call fcn.0043c5c0
mov eax, dword [eax]
mov edi, dword [ebx + 0x140]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x27
cmp esi, edi
je 0x44081f
cmp dword [edi + 0xc], 0
jl 0x440810
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x440810
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x4407ab
cmp ecx, dword [esi]
jne 0x4407ab
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4407e8
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x4407bf
call fcn.004092c0
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.0049ee68
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4407ff
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x12918]
mov dword [ebx + 0x140], eax
jmp 0x44081f
push dword [eax - 0xc]
lea ecx, [ebx + 0x140]
push eax
call fcn.00408ed0
mov edx, dword [ebp - 0x12924]
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 0x440843
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x12954]
push eax
lea eax, [ebp - 0x12924]
push eax
mov ecx, ebx
call fcn.0043c5c0
mov eax, dword [eax]
mov edi, dword [ebx + 0x144]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x28
cmp esi, edi
je 0x44091b
cmp dword [edi + 0xc], 0
jl 0x44090c
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x44090c
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x4408a7
cmp ecx, dword [esi]
jne 0x4408a7
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4408e4
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x4408bb
call fcn.004092c0
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.0049ee68
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4408fb
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x12918]
mov dword [ebx + 0x144], eax
jmp 0x44091b
push dword [eax - 0xc]
lea ecx, [ebx + 0x144]
push eax
call fcn.00408ed0
mov edx, dword [ebp - 0x12924]
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 0x44093f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x12960]
push eax
lea eax, [ebp - 0x12924]
push eax
mov ecx, ebx
call fcn.0043c5c0
mov eax, dword [eax]
mov edi, dword [ebx + 0x148]
lea esi, [eax - 0x10]
sub edi, 0x10
mov byte [ebp - 4], 0x29
cmp esi, edi
je 0x440a18
cmp dword [edi + 0xc], 0
jl 0x440a09
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x440a09
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x4409a4
cmp ecx, dword [esi]
jne 0x4409a4
mov ebx, esi
mov ecx, 1
lock xadd dword [eax], ecx
inc ecx
jmp 0x4409e1
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x4409b8
call fcn.004092c0
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.0049ee68
add esp, 0x10
or eax, 0xffffffff
lea ecx, [edi + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4409f8
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x12918]
mov dword [ebx + 0x148], eax
jmp 0x440a18
push dword [eax - 0xc]
lea ecx, [ebx + 0x148]
push eax
call fcn.00408ed0
mov edx, dword [ebp - 0x12924]
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 0x440a3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00445700
test al, al
jne 0x440a59
push 4
call fcn.0049dabd
mov ecx, dword [0x517280]
add esp, 4
mov dword [eax], ecx
cmp byte [ebx + 0x128], 0
jne 0x440af2
lea eax, [ebp - 0x12924]
push eax
call fcn.0040c2f0
mov edx, dword [ebx + 0x138]
xor ecx, ecx
add esp, 4
test edx, edx
setne cl
test ecx, ecx
jne 0x440a90
push 0x80004005
call fcn.00403080
mov eax, dword [eax]
mov cx, word [eax]
cmp cx, word [edx]
jne 0x440ab8
test cx, cx
je 0x440ab4
mov cx, word [eax + 2]
cmp cx, word [edx + 2]
jne 0x440ab8
add eax, 4
add edx, 4
test cx, cx
jne 0x440a92
xor eax, eax
jmp 0x440abd
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x12924]
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 0x440ae1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x440af2
mov eax, dword [ebp - 0x12918]
mov byte [eax + 0x128], 1
mov ebx, dword [ebp - 0x12960]
mov byte [ebp - 4], 0x14
test ebx, ebx
je 0x440b3f
mov esi, ebx
cmp ebx, dword [ebp - 0x1295c]
je 0x440b36
lea ebx, [ebx]
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 0x440b2b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x1295c]
jne 0x440b10
push ebx
call fcn.0049da8e
add esp, 4
mov ebx, dword [ebp - 0x12954]
mov byte [ebp - 4], 0x13
test ebx, ebx
je 0x440b86
mov esi, ebx
cmp ebx, dword [ebp - 0x12950]
je 0x440b7d
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 0x440b72
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x12950]
jne 0x440b57
push ebx
call fcn.0049da8e
add esp, 4
mov ebx, dword [ebp - 0x12990]
mov byte [ebp - 4], 0x12
test ebx, ebx
je 0x440bcf
mov esi, ebx
cmp ebx, dword [ebp - 0x1298c]
je 0x440bc6
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 0x440bbb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x1298c]
jne 0x440ba0
push ebx
call fcn.0049da8e
add esp, 4
mov ebx, dword [ebp - 0x12984]
mov byte [ebp - 4], 0x11
test ebx, ebx
je 0x440c16
mov esi, ebx
cmp ebx, dword [ebp - 0x12980]
je 0x440c0d
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 0x440c02
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x12980]
jne 0x440be7
push ebx
call fcn.0049da8e
add esp, 4
mov ebx, dword [ebp - 0x12978]
mov byte [ebp - 4], 0x10
test ebx, ebx
je 0x440c5f
mov esi, ebx
cmp ebx, dword [ebp - 0x12974]
je 0x440c56
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 0x440c4b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x12974]
jne 0x440c30
push ebx
call fcn.0049da8e
add esp, 4
mov ebx, dword [ebp - 0x1296c]
mov byte [ebp - 4], 0xe
test ebx, ebx
je 0x440ca6
mov esi, ebx
cmp ebx, dword [ebp - 0x12968]
je 0x440c9d
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 0x440c92
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, dword [ebp - 0x12968]
jne 0x440c77
push ebx
call fcn.0049da8e
add esp, 4
lea ecx, [ebp - 0x129b4]
mov byte [ebp - 4], 0xc
call fcn.004345e0
cmp dword [ebp - 0x127f8], 0x10
jb 0x440ccc
push dword [ebp - 0x1280c]
call fcn.0049da8e
add esp, 4
lea ecx, [ebp - 0x12900]
mov dword [ebp - 0x127f8], 0xf
mov dword [ebp - 0x127fc], 0
mov byte [ebp - 0x1280c], 0
call fcn.00402590
lea ecx, [ebp - 0x129a0]
mov byte [ebp - 4], 9
call fcn.004345e0
mov esi, dword [ebp - 0x12934]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x440d25
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x12919]
jmp 0x440d71
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.0049e294
mov esp, ebp
pop ebp
ret