Function at 0x40b730
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x46029c
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
mov eax, dword [0x47cbc0]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push esi
push edi
mov eax, dword [0x47cbc0]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov esi, 7
xor ebx, ebx
xor eax, eax
mov edi, ecx
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov word [esp + 0xbc], ax
mov dword [esp + 0x1c0], ebx
mov ecx, dword [0x462734]
push ecx
push 0x47e0e0
call fcn.00401926
mov ecx, eax
call fcn.0041c2d6
test al, al
je 0x40b7c7
push 0x19
push str.FUUEula::OnInitDialog__:
lea ecx, [esp + 0xc0]
call fcn.0040162b
mov edx, dword [0x462734]
push 1
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0xe4]
xor eax, eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push edx
mov word [ecx + 4], ax
call fcn.00401480
push 0x47e0e0
mov byte [esp + 0x1e8], 1
call fcn.00401926
push eax
lea ecx, [esp + 0x100]
mov byte [esp + 0x1ec], bl
call fcn.0041c3c6
mov byte [esp + 0x1c0], 2
cmp byte [esp + 0x110], bl
je 0x40b883
push 4
xor eax, eax
push str.Open
lea ecx, [esp + 0x68]
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], ebx
mov word [esp + 0x6c], ax
call fcn.0040162b
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0xd8]
mov byte [esp + 0x1c4], 3
call fcn.0041c485
mov byte [esp + 0x1c0], 2
cmp dword [esp + 0x78], 8
jb 0x40b883
mov edx, dword [esp + 0x64]
push edx
call fcn.00422a4d
add esp, 4
mov ecx, edi
call fcn.00427e96
call fcn.004257fc
fld qword [0x46dae8]
mov ecx, dword [edi + 0x20]
mov eax, dword [eax + 0xc]
sub esp, 8
fstp qword [esp]
push 0x81
push ecx
lea ebx, [edi + 0x74]
mov ecx, eax
call fcn.004150c0
push 0xffffff
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [edi + 0x94]
call fcn.004299bd
mov eax, dword [edi + 0x90]
mov eax, dword [eax]
lea edx, [esp + 0x60]
push edx
lea ecx, [eax + 0x40]
call fcn.0041d0a5
mov esi, 8
mov byte [esp + 0x1c0], 4
cmp dword [eax + 0x18], esi
jb 0x40b8f4
mov eax, dword [eax + 4]
jmp 0x40b8f7
add eax, 4
push eax
lea ecx, [esp + 0x54]
call fcn.00409470
mov byte [esp + 0x1c0], 6
cmp dword [esp + 0x78], esi
jb 0x40b91c
mov eax, dword [esp + 0x64]
push eax
call fcn.00422a4d
add esp, 4
push str.mback.bmp
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x54]
xor ecx, ecx
push eax
mov dword [esp + 0x84], 7
mov dword [esp + 0x80], 0
mov word [esp + 0x70], cx
call fcn.00407830
add esp, 0xc
push 0x10
push 0
push 0
mov byte [esp + 0x1cc], 7
mov ecx, dword [esp + 0x58]
push 0
push ecx
push 0
call dword [sym.imp.USER32.dll_LoadImageW]
push eax
call fcn.004299a9
mov esi, dword [sym.imp.GDI32.dll_GetObjectW]
lea edx, [esp + 0xa0]
push edx
mov dword [edi + 0x9c], eax
mov eax, dword [eax + 4]
push 0x18
push eax
call esi
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa4]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 1
mov dword [edi + 0xa4], ecx
mov ecx, dword [edi + 0x20]
push 0x80
push ecx
mov dword [edi + 0xa0], eax
call ebx
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b9d8
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
push 0x3ed
mov byte [esp + 0x1c4], 8
call fcn.00423e5f
test eax, eax
je 0x40ba0d
push 0x3ed
push eax
lea ecx, [esp + 0x3c]
call fcn.00409330
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, edi
call fcn.0042855e
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40ba33
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
push 0x3f3
mov byte [esp + 0x1c4], 9
call fcn.00423e5f
test eax, eax
je 0x40ba68
push 0x3f3
push eax
lea ecx, [esp + 0x38]
call fcn.00409330
mov ecx, dword [esp + 0x30]
push ecx
push 0x40e
mov ecx, edi
call fcn.00428471
mov ecx, eax
call fcn.0042855e
push 0x40e
mov ecx, edi
call fcn.00428471
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x31
push edx
call ebx
push eax
call fcn.004299a9
test eax, eax
je 0x40bb2f
mov edx, dword [eax + 4]
lea ecx, [esp + 0x11c]
push ecx
push 0x5c
push edx
call esi
fild dword [esp + 0x11c]
mov dword [esp + 0x12c], 0x2bc
fmul qword [0x46dae0]
call fcn.00444f40
push 8
mov dword [esp + 0x120], eax
call fcn.00422a1e
add esp, 4
test eax, eax
je 0x40baf9
mov dword [eax + 4], 0
mov dword [eax], vtable.CFont.0
mov esi, eax
jmp 0x40bafb
xor esi, esi
lea eax, [esp + 0x11c]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov ecx, esi
call fcn.004299bd
push 0x40e
mov ecx, edi
call fcn.00428471
test esi, esi
je 0x40bb24
mov esi, dword [esi + 4]
mov ecx, dword [eax + 0x20]
push 1
push esi
push 0x30
push ecx
call ebx
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bb49
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x48], eax
push 0x3f4
mov byte [esp + 0x1c4], 0xa
call fcn.00423e5f
test eax, eax
je 0x40bb7e
push 0x3f4
push eax
lea ecx, [esp + 0x50]
call fcn.00409330
mov ecx, dword [esp + 0x48]
push ecx
push 0x40f
mov ecx, edi
call fcn.00428471
mov ecx, eax
call fcn.0042855e
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bbb0
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
push 0x414
mov byte [esp + 0x1c4], 0xb
call fcn.00423e5f
test eax, eax
je 0x40bbe5
push 0x414
push eax
lea ecx, [esp + 0x48]
call fcn.00409330
mov ecx, dword [esp + 0x40]
push ecx
push 0x410
mov ecx, edi
call fcn.00428471
mov ecx, eax
call fcn.0042855e
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bc17
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
push 0x416
mov byte [esp + 0x1c4], 0xc
call fcn.00423e5f
test eax, eax
je 0x40bc4c
push 0x416
push eax
lea ecx, [esp + 0x40]
call fcn.00409330
mov ecx, dword [esp + 0x38]
push ecx
push 1
mov ecx, edi
call fcn.00428471
mov ecx, eax
call fcn.0042855e
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bc7b
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
push 0x417
mov byte [esp + 0x1c4], 0xd
call fcn.00423e5f
test eax, eax
je 0x40bcb0
push 0x417
push eax
lea ecx, [esp + 0x44]
call fcn.00409330
mov ecx, dword [esp + 0x3c]
push ecx
push 2
mov ecx, edi
call fcn.00428471
mov ecx, eax
call fcn.0042855e
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bcdf
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x44], eax
push 0x433
mov byte [esp + 0x1c4], 0xe
call fcn.00423e5f
test eax, eax
je 0x40bd14
push 0x433
push eax
lea ecx, [esp + 0x4c]
call fcn.00409330
mov ecx, dword [esp + 0x44]
push ecx
push 0x411
mov ecx, edi
call fcn.00428471
mov ecx, eax
call fcn.0042855e
lea ecx, [esp + 0x7c]
call fcn.0042fe8e
push 0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x98]
mov byte [esp + 0x1cc], 0xf
call fcn.0040c8a0
mov byte [esp + 0x1c0], 0x10
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bd71
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x1c0], 0x11
call fcn.00423e8f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bda3
push 0x80004005
call fcn.004099d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x58], eax
mov byte [esp + 0x1c0], 0x12
mov eax, dword [edi + 0x90]
lea esi, [esp + 0x54]
call fcn.0040b600
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1c4], 0x13
call fcn.00409930
mov byte [esp + 0x1c0], 0x12
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40be04
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x58]
mov ecx, 0x46b080
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40be36
test dx, dx
je 0x40be32
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40be36
add eax, 4
add ecx, 4
test dx, dx
jne 0x40be10
xor eax, eax
jmp 0x40be3b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40c181
lea ecx, [esp + 0x8c]
push ecx
push 0x10
push esi
lea ecx, [esp + 0x88]
call fcn.0043028f
test eax, eax
je 0x40c181
lea ecx, [esp + 0x7c]
call fcn.0042fd79
lea esi, [eax + 1]
push esi
mov dword [esp + 0x30], eax
call fcn.00422a58
mov ebx, eax
xor ecx, ecx
add esp, 4
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00422a58
add esp, 4
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
push eax
push ebx
lea ecx, [esp + 0x84]
call fcn.0042fb82
push esi
mov esi, dword [esp + 0x58]
push esi
push 0xffffffffffffffff
push ebx
push 0
push 0
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
call fcn.00423e8f
mov ecx, dword [esp + 0x2c]
push eax
push ecx
push esi
lea ecx, [esp + 0x38]
call fcn.00407d50
mov byte [esp + 0x1c0], 0x14
mov esi, dword [esp + 0x2c]
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x64]
call fcn.0040c770
lea eax, [esi - 0x10]
mov byte [esp + 0x1c0], 0x12
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40bf18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x40bf25
push ebx
call fcn.00422a4d
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x40bf36
push eax
call fcn.00422a4d
add esp, 4
mov esi, dword [esp + 0x5c]
push esi
push 0x3e8
mov ecx, edi
call fcn.00428471
mov ecx, eax
call fcn.0042855e
mov byte [esp + 0x1c0], 0x11
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bf76
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x1c0], 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bf9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xf
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
mov dword [esp + 0x8c], vtable.CFileException.0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bfd0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1c0], 0xe
call fcn.0042ff69
mov byte [esp + 0x1c0], 0xd
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c009
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xc
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c031
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xb
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c059
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xa
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c081
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 9
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c0a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 8
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c0d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 7
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c0f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 6
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c121
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 2
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c149
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xd4]
mov byte [esp + 0x1c0], 0
call fcn.0041b10c
cmp dword [esp + 0xd0], 8
jb 0x40c177
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.00422a4d
add esp, 4
mov eax, 1
jmp 0x40c3a8
lea eax, [esi - 0x10]
or ecx, 0xffffffff
lea edx, [eax + 0xc]
mov byte [esp + 0x1c0], 0x11
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c1a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x1c0], 0x10
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c1c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xf
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x8c], vtable.CFileException.0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c1ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1c0], 0xe
call fcn.0042ff69
mov byte [esp + 0x1c0], 0xd
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c238
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xc
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c260
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xb
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c288
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0xa
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c2b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 9
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c2d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 8
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c300
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 7
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c328
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 6
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c350
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 2
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c378
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xd4]
mov byte [esp + 0x1c0], 0
call fcn.0041b10c
cmp dword [esp + 0xd0], 8
jb 0x40c3a6
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.00422a4d
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.0043f432
mov esp, ebp
pop ebp
ret