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

Disassembly:
push 0xffffffffffffffff
push 0x449d80
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45e7b0]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x50]
mov esi, ecx
xor edi, edi
push 1
mov dword [esp + 0x3c], edi
call fcn.00418318
mov eax, dword [esi + 0x47c]
lea ebx, [esi + 0x47c]
sub eax, 0x10
push eax
call fcn.0040af90
add eax, 0x10
add esp, 4
mov dword [esp + 0x18], eax
mov eax, esi
mov dword [esp + 0x48], edi
call fcn.00406fb0
cmp eax, 4
ja case.0x40406d.2
jmp dword [eax*4 + 0x4056a8]
push 2
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.00409920
push eax
push ecx
mov ecx, esp
mov byte [esp + 0x50], 1
mov dword [esp + 0x44], esp
push 2
push ecx
mov ecx, ebx
call fcn.00409a00
lea edx, [esp + 0x34]
push edx
push esi
call fcn.00407850
push eax
lea eax, [esp + 0x38]
push eax
mov byte [esp + 0x54], 2
call fcn.00409a80
add esp, 0xc
push eax
mov ecx, ebx
mov byte [esp + 0x4c], 3
call fcn.0040b000
mov byte [esp + 0x48], 2
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 0x4040e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 1
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40410e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg case.0x40406d.2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.004156e6
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x404276
push 0x80004005
call fcn.0040b0a0
push ebx
lea ecx, [esp + 0x28]
push 0x452464
push ecx
call fcn.00409c20
add esp, 0xc
push eax
mov ecx, ebx
mov byte [esp + 0x4c], 4
call fcn.0040b000
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x404127
push 2
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.00409920
push eax
push ecx
mov byte [esp + 0x50], 5
mov edx, esp
mov dword [esp + 0x44], esp
push 2
push edx
mov ecx, ebx
call fcn.00409a00
lea eax, [esp + 0x24]
push eax
push esi
call fcn.00407850
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x54], 6
call fcn.00409a80
add esp, 0xc
push eax
mov ecx, ebx
mov byte [esp + 0x4c], 7
call fcn.0040b000
mov byte [esp + 0x48], 6
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404201
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 5
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404226
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0x14]
jmp 0x404117
mov eax, dword [esi + 0x46c]
cmp eax, 2
je case.0x40406d.2
cmp eax, 3
je case.0x40406d.2
push edi
push edi
push 0x4523fc
mov ecx, esi
call fcn.004178d3
push 0x452aa2
mov ecx, ebp
call fcn.0040a8e0
lea ecx, [esp + 0x18]
call fcn.00401370
mov eax, ebp
jmp 0x405691
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x14], ebp
mov byte [esp + 0x48], 8
mov eax, dword [esi + 0x46c]
cmp eax, 1
jne 0x404a72
mov ecx, dword [esi + 0x404]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 2
push 0xffffffffffffffff
push 0x100c
push ecx
call edi
add eax, 1
je 0x404a02
mov edx, dword [esi + 0x404]
push 2
lea ebp, [eax - 1]
push ebp
push 0x100c
push edx
call edi
mov eax, dword [esi + 0x404]
push ebp
push 0
push 0x1043
push eax
call edi
mov ecx, dword [esi + 0x404]
push 0
push 0
push 0x1042
push ecx
call edi
push 1
push eax
lea edx, [esp + 0x28]
push edx
lea ecx, [esi + 0x3e4]
call fcn.0041389d
mov byte [esp + 0x48], 9
call fcn.004156e6
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404324
push 0x80004005
call fcn.0040b0a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x48], 0xa
mov ecx, dword [esi + 0x470]
push ecx
lea edx, [esp + 0x28]
push str.__z_d
push edx
call fcn.0040a6c0
mov eax, dword [esp + 0x24]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov edi, esp
push eax
call fcn.0040af90
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.004070d0
cmp eax, 3
je 0x4046ba
cmp dword [esi + 0x478], 0
lea ecx, [esp + 0x3c]
jne 0x404514
push str.__clone_modepdump_src
call fcn.0040a8e0
lea ecx, [esp + 0x20]
push ecx
push eax
lea edx, [esp + 0x40]
push edx
mov byte [esp + 0x54], 0xb
call fcn.00409a80
push str._dst_
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x60], 0xc
call fcn.00409b40
push ebx
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x6c], 0xd
call fcn.00409a80
push 0x45247c
push eax
lea edx, [esp + 0x54]
push edx
mov byte [esp + 0x78], 0xe
call fcn.00409b40
lea ecx, [esp + 0x54]
push ecx
push eax
lea edx, [esp + 0x64]
mov bl, 0xf
push edx
mov byte [esp + 0x84], bl
call fcn.00409a80
push str.__fx__sure
push eax
lea eax, [esp + 0x74]
push eax
mov byte [esp + 0x90], 0x10
call fcn.00409b40
add esp, 0x48
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 0x11
call fcn.0040b000
mov byte [esp + 0x48], 0x10
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 0x40444e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], bl
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404472
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0xe
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404497
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0xd
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4044bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0xc
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 0x4044e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 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 0x404506
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0xa
mov eax, dword [esp + 0x3c]
jmp 0x4049b3
push 1
push ecx
lea ecx, [esp + 0x28]
call fcn.00409a00
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c], 0x12
call fcn.0040b000
mov byte [esp + 0x48], 0xa
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404554
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.__clone_modedump_src
lea ecx, [esp + 0x20]
call fcn.0040a8e0
lea ecx, [esp + 0x20]
push ecx
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x54], 0x13
call fcn.00409a80
push str._dst_
push eax
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x60], 0x14
call fcn.00409b40
push ebx
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x6c], 0x15
call fcn.00409a80
push 0x45247c
push eax
lea edx, [esp + 0x60]
push edx
mov byte [esp + 0x78], 0x16
call fcn.00409b40
lea ecx, [esp + 0x54]
push ecx
push eax
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x84], 0x17
call fcn.00409a80
push str.__fx__sure
push eax
lea eax, [esp + 0x80]
mov bl, 0x18
push eax
mov byte [esp + 0x90], bl
call fcn.00409b40
add esp, 0x48
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 0x19
call fcn.0040b000
mov byte [esp + 0x48], bl
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 0x40461c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x17
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 0x404641
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x16
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 0x404666
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x15
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 0x40468b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x14
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4046b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x13
jmp 0x40498a
cmp dword [esi + 0x478], 0
lea ecx, [esp + 0x1c]
jne 0x40482d
push str.__clone_modepcreate_src
call fcn.0040a8e0
lea ecx, [esp + 0x20]
push ecx
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x54], 0x1a
call fcn.00409a80
push str._dst_
push eax
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x60], 0x1b
call fcn.00409b40
push ebx
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x6c], 0x1c
call fcn.00409a80
push 0x45247c
push eax
lea edx, [esp + 0x60]
push edx
mov byte [esp + 0x78], 0x1d
call fcn.00409b40
lea ecx, [esp + 0x54]
push ecx
push eax
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x84], 0x1e
call fcn.00409a80
push str.__fx__sure
push eax
lea eax, [esp + 0x80]
mov bl, 0x1f
push eax
mov byte [esp + 0x90], bl
call fcn.00409b40
add esp, 0x48
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 0x20
call fcn.0040b000
mov byte [esp + 0x48], bl
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 0x40478f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x1e
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 0x4047b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x1d
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 0x4047d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x1c
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 0x4047fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x1b
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404823
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x1a
jmp 0x40498a
push str.__clone_modecreate_src
call fcn.0040a8e0
lea ecx, [esp + 0x20]
push ecx
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x54], 0x21
call fcn.00409a80
push str._dst_
push eax
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x60], 0x22
call fcn.00409b40
push ebx
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x6c], 0x23
call fcn.00409a80
push 0x45247c
push eax
lea edx, [esp + 0x60]
push edx
mov byte [esp + 0x78], 0x24
call fcn.00409b40
lea ecx, [esp + 0x54]
push ecx
push eax
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x84], 0x25
call fcn.00409a80
push str.__fx__sure
push eax
lea eax, [esp + 0x80]
mov bl, 0x26
push eax
mov byte [esp + 0x90], bl
call fcn.00409b40
add esp, 0x48
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 0x27
call fcn.0040b000
mov byte [esp + 0x48], bl
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 0x4048f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x25
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 0x404916
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x24
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 0x40493b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x23
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 0x404960
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x22
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404985
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x21
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4049aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0xa
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4049cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 9
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4049f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 8
mov eax, dword [esp + 0x20]
jmp 0x404cfe
push 0
push 0
push 0x452368
mov ecx, esi
call fcn.004178d3
mov esi, dword [esp + 0x50]
push 0x452aa2
mov ecx, esi
call fcn.0040a8e0
lea eax, [ebp - 0x10]
mov byte [esp + 0x48], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404a43
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404a6b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
jmp 0x405691
cmp eax, edi
jne 0x404d23
mov ecx, dword [esi + 0x404]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 2
push 0xffffffffffffffff
push 0x100c
push ecx
call edi
add eax, 1
je 0x404a02
mov edx, dword [esi + 0x404]
push 2
lea ebp, [eax - 1]
push ebp
push 0x100c
push edx
call edi
mov eax, dword [esi + 0x404]
push ebp
push 0
push 0x1043
push eax
call edi
mov ecx, dword [esi + 0x404]
push 0
push 0
push 0x1042
push ecx
call edi
push 1
push eax
lea edx, [esp + 0x30]
push edx
lea ecx, [esi + 0x3e4]
call fcn.0041389d
mov byte [esp + 0x48], 0x28
mov eax, dword [esp + 0x18]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov edi, esp
push eax
call fcn.0040af90
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.004070d0
lea ecx, [esp + 0x2c]
cmp eax, 3
je 0x404bef
cmp dword [esi + 0x478], 0
jne 0x404b88
push str.__clone_modepload_src_
call fcn.0040a8e0
push ebx
push eax
lea eax, [esp + 0x38]
push eax
mov byte [esp + 0x54], 0x29
call fcn.00409a80
push str.:1__dst
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x60], 0x2a
call fcn.00409b40
lea edx, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x6c], 0x2b
call fcn.00409a80
push str.__fx__sure
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x78], 0x2c
call fcn.00409b40
add esp, 0x30
mov byte [esp + 0x48], 0x2d
jmp 0x404cbe
push str.__clone_modeload_src_
call fcn.0040a8e0
push ebx
push eax
lea edx, [esp + 0x38]
push edx
mov byte [esp + 0x54], 0x2e
call fcn.00409a80
push str.__dst
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x60], 0x2f
call fcn.00409b40
lea ecx, [esp + 0x40]
push ecx
push eax
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x6c], 0x30
call fcn.00409a80
push str.__fx__sure
push eax
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x78], 0x31
call fcn.00409b40
add esp, 0x30
mov byte [esp + 0x48], 0x32
jmp 0x404cbe
cmp dword [esi + 0x478], 0
jne 0x404c5c
push str.__clone_modeprestore_src
call fcn.0040a8e0
push ebx
push eax
lea ecx, [esp + 0x38]
push ecx
mov byte [esp + 0x54], 0x33
call fcn.00409a80
push str._dst
push eax
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x60], 0x34
call fcn.00409b40
lea ecx, [esp + 0x40]
push ecx
push eax
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x6c], 0x35
call fcn.00409a80
push str.__fx__sure
push eax
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x78], 0x36
call fcn.00409b40
add esp, 0x30
mov byte [esp + 0x48], 0x37
jmp 0x404cbe
push str.__clone_moderestore_src
call fcn.0040a8e0
push ebx
push eax
lea ecx, [esp + 0x38]
push ecx
mov byte [esp + 0x54], 0x38
call fcn.00409a80
push str._dst
push eax
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x60], 0x39
call fcn.00409b40
lea ecx, [esp + 0x40]
push ecx
push eax
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x6c], 0x3a
call fcn.00409a80
push str.__fx__sure
push eax
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x78], 0x3b
call fcn.00409b40
add esp, 0x30
mov byte [esp + 0x48], 0x3c
push eax
lea ecx, [esp + 0x18]
call fcn.0040b000
lea ecx, [esp + 0x3c]
call fcn.00401370
lea ecx, [esp + 0x38]
call fcn.00401370
lea ecx, [esp + 0x34]
call fcn.00401370
lea ecx, [esp + 0x30]
call fcn.00401370
lea ecx, [esp + 0x2c]
call fcn.00401370
mov byte [esp + 0x48], 8
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405475
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x405475
cmp eax, 2
jne 0x4051d4
call fcn.004156e6
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x404d46
push 0x80004005
call fcn.0040b0a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
push 2
push 0xffffffffffffffff
mov byte [esp + 0x50], 0x3d
mov ecx, dword [esi + 0x404]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0x100c
push ecx
call ebx
mov edi, eax
inc edi
call fcn.004156e6
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404d90
push 0x80004005
call fcn.0040b0a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x48], 0x3e
call fcn.004156e6
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404dbf
push 0x80004005
call fcn.0040b0a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x48], 0x3f
call fcn.004156e6
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404dee
push 0x80004005
call fcn.0040b0a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x48], 0x40
call fcn.004156e6
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404e1d
push 0x80004005
call fcn.0040b0a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x48], 0x41
test edi, edi
jne 0x404f1e
push edi
push edi
push 0x452578
mov ecx, esi
call fcn.004178d3
mov esi, dword [esp + 0x50]
push 0x452aa2
mov ecx, esi
call fcn.0040a8e0
lea eax, [ebp - 0x10]
mov byte [esp + 0x48], 0x40
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404e79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x3f
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404e9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x3e
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404ec3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0x3d
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404ee8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 8
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404f0d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
jmp 0x404a2a
mov ecx, dword [esi + 0x404]
push 2
dec edi
push edi
push 0x100c
push ecx
call ebx
push 1
mov ebx, eax
push edi
lea edx, [esp + 0x44]
lea ebp, [esi + 0x3e4]
inc ebx
push edx
mov ecx, ebp
mov dword [esp + 0x44], ebx
call fcn.0041389d
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c], 0x42
call fcn.0040b000
mov byte [esp + 0x48], 0x41
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 0x404f80
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
push edi
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebp
call fcn.0041389d
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x4c], 0x43
call fcn.0040b000
mov byte [esp + 0x48], 0x41
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404fc3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x40502b
push ebx
push ebx
push 0x452578
mov ecx, esi
call fcn.004178d3
mov esi, dword [esp + 0x50]
push 0x452aa2
mov ecx, esi
call fcn.0040a8e0
lea ecx, [esp + 0x2c]
call fcn.00401370
lea ecx, [esp + 0x24]
call fcn.00401370
lea ecx, [esp + 0x20]
call fcn.00401370
lea ecx, [esp + 0x1c]
call fcn.00401370
lea ecx, [esp + 0x28]
call fcn.00401370
lea ecx, [esp + 0x14]
call fcn.00401370
lea ecx, [esp + 0x18]
call fcn.00401370
mov eax, esi
jmp 0x405691
lea edi, [esp + 0x38]
mov eax, ebp
call fcn.0040a880
push 1
mov edi, eax
push edi
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebp
call fcn.0041389d
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c], 0x44
call fcn.0040b000
lea ecx, [esp + 0x3c]
mov byte [esp + 0x48], 0x41
call fcn.00401370
push 0
push edi
lea edx, [esp + 0x3c]
push edx
mov ecx, ebp
call fcn.0041389d
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c], 0x45
call fcn.0040b000
lea ecx, [esp + 0x34]
mov byte [esp + 0x48], 0x41
call fcn.00401370
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
push eax
push ecx
push edx
push edi
push edx
push edi
push eax
push ecx
lea eax, [esp + 0x48]
push 0x452590
push eax
call fcn.0040a6c0
mov ecx, dword [esp + 0x50]
add esp, 0x28
push 0x23
push 0
push ecx
mov ecx, esi
call fcn.004178d3
cmp eax, 6
je 0x40511e
cmp eax, 7
jne 0x404fd5
lea ecx, [esp + 0x30]
call fcn.0040b0f0
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 0x46
call fcn.0040b000
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
call fcn.0040b000
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x24]
call fcn.0040b000
lea ecx, [esp + 0x30]
mov byte [esp + 0x48], 0x41
call fcn.00401370
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x34]
push str.__clone_modepcopy_src
push eax
call fcn.00409c20
push str._dst
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x60], 0x47
call fcn.00409b40
lea edx, [esp + 0x38]
push edx
push eax
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x6c], 0x48
call fcn.00409a80
push str.__fx__sure
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x78], 0x49
call fcn.00409b40
add esp, 0x30
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 0x4a
call fcn.0040b000
lea ecx, [esp + 0x3c]
call fcn.00401370
lea ecx, [esp + 0x38]
call fcn.00401370
lea ecx, [esp + 0x34]
call fcn.00401370
lea ecx, [esp + 0x30]
call fcn.00401370
lea ecx, [esp + 0x2c]
call fcn.00401370
lea ecx, [esp + 0x24]
call fcn.00401370
lea ecx, [esp + 0x20]
call fcn.00401370
lea ecx, [esp + 0x1c]
call fcn.00401370
lea ecx, [esp + 0x28]
jmp 0x40546b
cmp eax, 3
jne 0x405475
lea ecx, [esp + 0x24]
call fcn.0040b0f0
mov edx, dword [esi + 0x404]
push 2
push 0xffffffffffffffff
push 0x100c
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
inc edi
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], edi
call fcn.0040b0f0
lea ecx, [esp + 0x1c]
call fcn.0040b0f0
mov bl, 0x4d
mov byte [esp + 0x48], bl
test edi, edi
jne 0x40525a
push 0
push 0
push 0x452578
mov ecx, esi
call fcn.004178d3
mov esi, dword [esp + 0x50]
push 0x452aa2
mov ecx, esi
call fcn.0040a8e0
lea ecx, [esp + 0x1c]
call fcn.00401370
lea ecx, [esp + 0x20]
call fcn.00401370
lea ecx, [esp + 0x24]
jmp 0x40500d
lea ebp, [esi + 0x3e4]
lea edi, [esp + 0x30]
mov eax, ebp
call fcn.0040a880
push 1
push eax
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
call fcn.0041389d
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c], 0x4e
call fcn.0040b000
lea ecx, [esp + 0x3c]
mov byte [esp + 0x48], bl
call fcn.00401370
cmp dword [esp + 0x30], 0
je 0x40521f
mov eax, ebp
call fcn.0040a880
push 1
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebp
call fcn.0041389d
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c], 0x4f
call fcn.0040b000
lea ecx, [esp + 0x3c]
mov byte [esp + 0x48], bl
call fcn.00401370
push 1
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x28]
call fcn.00409a00
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c], 0x50
call fcn.0040b000
lea ecx, [esp + 0x38]
mov byte [esp + 0x48], bl
call fcn.00401370
push 1
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x24]
call fcn.00409a00
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c], 0x51
call fcn.0040b000
lea ecx, [esp + 0x34]
mov byte [esp + 0x48], bl
call fcn.00401370
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.00409d00
add esp, 8
test al, al
je 0x40534b
push 0
push 0
push 0x4525f4
jmp 0x405228
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push ecx
push eax
lea eax, [esp + 0x34]
push 0x452618
push eax
call fcn.0040a6c0
mov ecx, dword [esp + 0x3c]
add esp, 0x18
push 0x23
push 0
push ecx
mov ecx, esi
call fcn.004178d3
cmp eax, 6
je 0x4053cc
cmp eax, 7
jne 0x40522f
lea ecx, [esp + 0x30]
call fcn.0040b0f0
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 0x52
call fcn.0040b000
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
call fcn.0040b000
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x20]
call fcn.0040b000
lea ecx, [esp + 0x30]
mov byte [esp + 0x48], bl
call fcn.00401370
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x34]
push str.__clone_modecopy_src
push eax
call fcn.00409c20
push str._dst
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x60], 0x53
call fcn.00409b40
lea edx, [esp + 0x34]
push edx
push eax
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x6c], 0x54
call fcn.00409a80
push str.__IB__fx__sure
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x78], 0x55
call fcn.00409b40
add esp, 0x30
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 0x56
call fcn.0040b000
lea ecx, [esp + 0x3c]
call fcn.00401370
lea ecx, [esp + 0x38]
call fcn.00401370
lea ecx, [esp + 0x34]
call fcn.00401370
lea ecx, [esp + 0x30]
call fcn.00401370
lea ecx, [esp + 0x1c]
call fcn.00401370
lea ecx, [esp + 0x20]
call fcn.00401370
lea ecx, [esp + 0x24]
mov byte [esp + 0x48], 8
call fcn.00401370
cmp dword [esi + 0xd4], 0
je 0x40548e
push 8
push str.__nosata
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0xcc], 0
je 0x4054a7
push 0xb
push str.__crcignore
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0xd0], 0
je 0x4054c0
push 5
push str.__fro
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0xd8], 0
je 0x4054d9
push 9
push str.__ntexact
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0xdc], 0
je 0x4054f2
push 7
push str.__nousb
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0xc0], 0
je 0x40550b
push 8
push str.__noscsi
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0xc8], 0
je 0x405524
push 8
push str.__no1394
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0xc4], 0
je 0x40553d
push 7
push str.__noide
lea ecx, [esp + 0x1c]
call fcn.00409ec0
cmp dword [esi + 0x474], 0
je 0x405556
push 4
push str.__rb
lea ecx, [esp + 0x1c]
call fcn.00409ec0
mov eax, dword [esi + 0xbc]
lea edi, [esi + 0xbc]
push 0x452aa2
push eax
call fcn.00432247
add esp, 8
test eax, eax
sete al
test al, al
jne 0x405619
push 1
lea edx, [esp + 0x40]
push edx
mov ecx, edi
call fcn.00409a00
mov eax, dword [eax]
push 0x45222c
push eax
call fcn.00432247
add esp, 8
test eax, eax
mov eax, dword [esp + 0x3c]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4055c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x405609
push edi
lea ecx, [esp + 0x40]
push 0x45222c
push ecx
call fcn.00409c20
add esp, 0xc
push eax
mov ecx, edi
mov byte [esp + 0x4c], 0x57
call fcn.0040b000
mov byte [esp + 0x48], 8
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x405609
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [edi]
mov eax, dword [edi - 0xc]
push eax
push edi
lea ecx, [esp + 0x1c]
call fcn.00409ec0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 0x47c]
call fcn.0040b000
mov ecx, esi
call fcn.004061e0
mov esi, dword [esp + 0x14]
add esi, 0xfffffff0
push esi
call fcn.0040af90
mov edi, dword [esp + 0x54]
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x48], 0
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x405667
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40568f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret 4