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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2e8
mov eax, dword [0x1005e3bc]
mov dword [esp + 0x94], edx
push esi
mov esi, ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
test al, 1
jne 0x1003b337
or eax, 1
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
and eax, 0xfffffffe
add eax, 0x10
mov dword [0x1005e3c0], eax
mov eax, dword [0x1005e3bc]
test al, 2
jne 0x1003b38c
or eax, 2
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
and eax, 0xfffffffe
add eax, 0xf
mov dword [0x1005e3c4], eax
mov eax, dword [0x1005e3bc]
test al, 4
jne 0x1003b3e1
or eax, 4
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
and eax, 0xfffffffe
add eax, 0x15
mov dword [0x1005e3c8], eax
mov eax, dword [0x1005e3bc]
test al, 8
jne 0x1003b436
or eax, 8
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
and eax, 0xfffffffe
add eax, 0x13
mov dword [0x1005e3cc], eax
mov eax, dword [0x1005e3bc]
test al, 0x10
jne 0x1003b48b
or eax, 0x10
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
and eax, 0xfffffffe
add eax, 0x18
mov dword [0x1005e3d0], eax
mov eax, dword [0x1005e3bc]
test al, 0x20
jne 0x1003b4e0
or eax, 0x20
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
and eax, 0xfffffffe
add eax, 0x19
mov dword [0x1005e3d4], eax
mov eax, dword [0x1005e3bc]
test al, 0x40
jne 0x1003b535
or eax, 0x40
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
and eax, 0xfffffffe
add eax, 0x1e
mov dword [0x1005e3d8], eax
mov eax, dword [0x1005e3bc]
test al, al
js 0x1003b584
or eax, 0x80
mov dword [esp + 0xc0], 0x114
push pe_nt_image_headers32
mov dword [0x1005e3bc], eax
lea eax, [esp + 0xc8]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call edi
cmp dword [esp + 0xcc], 0x4e20
sbb eax, eax
add eax, 0x16
mov dword [0x1005e3dc], eax
mov ecx, dword [0x1005d4f0]
mov dword [esp + 0x98], 0
mov byte [esp + 0x28], 0
test ecx, ecx
je 0x1003b5c0
mov eax, dword [ecx]
lea edx, [esp + 0x98]
push edx
push ecx
call dword [eax + 0x18]
mov eax, dword [esp + 0x98]
shr eax, 1
not al
and eax, 0xffffff01
mov dword [esp + 0x28], eax
mov eax, dword [esi]
lea ecx, [esp + 0xa0]
push ecx
push 0xffffffffffffffff
push esi
call dword [eax + 0x3c]
mov eax, dword [esi]
lea ecx, [esp + 0x1c]
push ecx
push 8
push 0xffffffffffffffff
push esi
mov dword [esp + 0x2c], 0
call dword [eax + 0x84]
cmp dword [ebp + 8], 0xffffffff
jne 0x1003b693
cmp dword [0x1005d4d8], 0xffffffff
je 0x1003b693
mov eax, dword [esi]
push esi
call dword [eax + 0x18]
cmp eax, dword [0x1005d4e0]
jne 0x1003b693
mov dl, byte [0x1005d4c4]
test dl, dl
je 0x1003b643
mov eax, dword [0x1005d4cc]
sub eax, dword [0x1005d4dc]
mov ecx, dword [esp + 0xa4]
sub eax, ecx
neg ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
jg 0x1003b69d
mov eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x1003b69d
mov eax, dword [0x1005d4c8]
sub eax, dword [0x1005d4d8]
mov ecx, dword [esp + 0xa0]
sub eax, ecx
neg ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
jg 0x1003b667
mov eax, ecx
mov dword [esp + 0x1c], eax
push 0
push eax
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi]
push esi
call dword [eax + 0x18]
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x1003b6a6
lea eax, [edi + 1]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x1c]
mov dl, byte [0x1005d4c4]
test dl, dl
je 0x1003b667
push eax
push 0
jmp 0x1003b66a
push 0x58
lea eax, [esp + 0x44]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esi]
add esp, 0xc
mov dword [esp + 0x40], 5
push esi
call dword [eax + 0xb8]
test eax, eax
setne byte [esp + 0x48]
cmp dword [0x1005d054], 0
je 0x1003b6ef
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
push eax
call fcn.1004cdd0
mov ecx, eax
call fcn.1004d0c0
mov dword [esp + 0x60], eax
movups xmm0, xmmword [esp + 0xa0]
mov eax, dword [esi]
lea ecx, [esp + 0x80]
push ecx
push 5
push 0xffffffffffffffff
push esi
movups xmmword [esp + 0x98], xmm0
call dword [eax + 0x84]
mov eax, dword [esi]
lea ecx, [esp + 0x84]
push ecx
push 4
push 0xffffffffffffffff
push esi
call dword [eax + 0x84]
push 0
push dword [0x1005e0c4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0x38], 0
test eax, eax
je 0x1003b795
mov ecx, dword [eax + 8]
lea edx, [esp + 0x38]
add eax, 8
push edx
push 0x1005778c
push eax
call dword [ecx]
test eax, eax
jne 0x1003b787
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x1003b79d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1003b79d
mov eax, dword [ecx]
lea edx, [esp + 0x50]
push edx
push dword [0x1005d4c0]
push ecx
call dword [eax + 0x14]
jmp 0x1003b79d
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1003b795
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x24], 0
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
cmp eax, 1
jne 0x1003b7bd
cmp byte [esp + 0x28], 0
jne 0x1003b7d9
mov eax, dword [esi]
push esi
call dword [eax + 0xb8]
cmp eax, 1
jne 0x1003b7d9
mov eax, dword [esi]
push esi
call dword [eax + 0xa0]
cmp eax, 1
jle 0x1003b7d9
mov ecx, 3
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
mov ecx, dword [esi]
push esi
cmp eax, 1
jne 0x1003bd0a
xor edi, edi
call dword [ecx + 0xb8]
test eax, eax
jle 0x1003c0fb
nop dword [eax + eax]
mov eax, dword [esi]
push edi
push esi
call dword [eax + 0xbc]
mov dword [esp + 0x20], eax
test eax, eax
je 0x1003bcee
mov ecx, dword [esi]
lea eax, [esp + 0xb0]
movaps xmm0, xmmword [esp + 0xa0]
push eax
push edi
push esi
movaps xmmword [esp + 0xbc], xmm0
call dword [ecx + 0x3c]
cmp byte [0x1005d4c4], 0
lea eax, [esp + 0xb0]
je 0x1003b84d
push dword [esp + 0x1c]
push 0
jmp 0x1003b853
push 0
push dword [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi]
push esi
call dword [eax + 0xb8]
cmp eax, 1
jle 0x1003b8a3
cmp byte [0x1005d4c4], 0
jne 0x1003b8a3
mov dword [esp + 0x40], 7
test edi, edi
jne 0x1003b887
mov dword [esp + 0x40], 6
jmp 0x1003b8a3
mov eax, dword [esi]
push esi
call dword [eax + 0xb8]
mov ecx, dword [esp + 0x40]
dec eax
cmp edi, eax
mov eax, 8
cmove ecx, eax
mov dword [esp + 0x40], ecx
cmp dword [ebp + 8], edi
lea eax, [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov edx, ecx
sete byte [esp + 0x49]
cmp dword [ebp + 0xc], edi
push eax
mov al, byte [esp + 0x2c]
sete byte [esp + 0x4e]
cmp ecx, dword [0x1005d4e4]
sete byte [esp + 0x4f]
cmp ecx, dword [0x1005d4ec]
mov ecx, dword [esp + 0x1c]
sete byte [esp + 0x50]
xor al, 1
movzx eax, al
push eax
push dword [esp + 0x2c]
call fcn.1003b200
mov eax, dword [esi]
lea ecx, [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x58], 0xff
mov dword [esp + 0x14], 0
push ecx
push dword [0x1005e3c8]
push edi
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003b931
push 0x3e8
push 0xff
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x58], eax
jmp 0x1003b993
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push 1
push edi
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003b950
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
jmp 0x1003b993
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push 0
push edi
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003b96f
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
jmp 0x1003b993
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3cc]
push edi
push esi
call dword [eax + 0x84]
mov ecx, dword [esp + 0x58]
test eax, eax
cmovne ecx, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
push pe_nt_image_headers32
lea eax, [esp + 0x1e0]
mov dword [esp + 0x1dc], 0x114
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0x1d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x1e4], 0x3839
jb 0x1003ba1e
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x2c]
push edx
push 0x1005777c
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x38], 0
call dword [eax]
test eax, eax
mov eax, dword [esp + 0x2c]
jne 0x1003ba14
mov ecx, dword [eax]
push eax
call dword [ecx + 0xb8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x1003ba20
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, dword [esp + 0x3c]
jmp 0x1003ba20
test eax, eax
je 0x1003ba1e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
push 0xc8
mov dword [esp + 0x60], eax
lea eax, [esp + 0xc4]
push 0
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xcc]
add esp, 0xc
mov eax, dword [ecx]
push 0x64
push edx
push dword [esp + 0x28]
push ecx
call dword [eax + 0x2c]
cmp byte [esp + 0x28], 0
lea ecx, [esp + 0x70]
push ecx
push dword [0x1005e3d8]
lea eax, [esp + 0xc8]
cmove eax, dword [esp + 0x6c]
mov dword [esp + 0x6c], eax
mov eax, dword [esi]
push edi
push esi
call dword [eax + 0x84]
push pe_nt_image_headers32
lea eax, [esp + 0x1e0]
mov dword [esp + 0x1dc], 0x114
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0x1d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x1e4], 0x3839
jb 0x1003bb03
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x30]
push edx
push 0x1005777c
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x3c], 0
call dword [eax]
test eax, eax
jne 0x1003baf5
mov eax, dword [esp + 0x30]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x4c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1003bb03
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push pe_nt_image_headers32
lea eax, [esp + 0x1e0]
mov dword [esp + 0x1dc], 0x114
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0x1d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x1e4], 0x3839
jb 0x1003bb9f
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x34]
push edx
push 0x1005777c
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x40], 0
call dword [eax]
test eax, eax
mov eax, dword [esp + 0x34]
jne 0x1003bb95
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
mov ecx, dword [esp + 0x34]
shr eax, 0x10
and eax, 0xffffff01
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x1003bb87
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, dword [esp + 0x3c]
test al, al
je 0x1003bb9f
mov dword [esp + 0x74], 0xff
jmp 0x1003bb9f
test eax, eax
je 0x1003bb9f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3d0]
push edi
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003bbbf
push 0x1f4
jmp 0x1003bbdd
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3d4]
push edi
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003bbf0
push 0x3e8
push 0xc8
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x74], eax
cmp byte [esp + 0x49], 0
lea ecx, [esp + 0x14]
mov eax, dword [esi]
push ecx
mov eax, dword [eax + 0x84]
je 0x1003bc33
push dword [0x1005e3c0]
mov dword [esp + 0x80], 0xff
push edi
push esi
call eax
test eax, eax
je 0x1003bc5e
push 0x3e8
push 0xff
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
jmp 0x1003bc5a
push dword [0x1005e3c4]
push edi
push esi
call eax
test eax, eax
je 0x1003bc5e
push 0x3e8
push 0xff
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov byte [esp + 0x49], 1
mov dword [esp + 0x78], eax
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3dc]
mov dword [esp + 0x84], 0xff
push edi
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003bc8c
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
jmp 0x1003bcd3
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3c8]
push edi
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003bcaf
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
jmp 0x1003bcd3
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3cc]
push edi
push esi
call dword [eax + 0x84]
mov ecx, dword [esp + 0x7c]
test eax, eax
cmovne ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x9c]
lea eax, [esp + 0x40]
push eax
lea edx, [esp + 0xb4]
call fcn.1003a850
add esp, 4
mov eax, dword [esi]
inc edi
push esi
call dword [eax + 0xb8]
cmp edi, eax
jl 0x1003b800
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebp + 8], 0xffffffff
movaps xmm0, xmmword [esp + 0xa4]
setne byte [esp + 0x4d]
movaps xmmword [esp + 0xb4], xmm0
cmp dword [ebp + 0xc], 0xffffffff
setne byte [esp + 0x4e]
call dword [ecx + 0x18]
cmp eax, dword [0x1005d4e0]
mov eax, dword [esi]
push esi
sete byte [esp + 0x4f]
call dword [eax + 0x18]
cmp eax, dword [0x1005d4e8]
mov eax, dword [esi]
push esi
sete byte [esp + 0x50]
call dword [eax + 0x10]
cmp eax, 2
jne 0x1003bd68
mov eax, dword [edi]
lea ecx, [esp + 0x54]
push ecx
push 0
push edi
call dword [eax + 0x38]
jmp 0x1003be4a
mov eax, dword [esi]
push esi
call dword [eax + 0xb8]
test eax, eax
je 0x1003bd84
mov eax, dword [esi]
push 0
push esi
call dword [eax + 0xbc]
mov edi, eax
jmp 0x1003bd86
xor edi, edi
push pe_nt_image_headers32
lea eax, [esp + 0x1e0]
mov dword [esp + 0x58], 0xfffffffe
push 0
push eax
mov dword [esp + 0x1e4], 0x114
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0x1d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x1e4], 0x44f2
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
jb 0x1003bdd7
call dword [eax + 0x74]
jmp 0x1003bdda
call dword [eax + 0x70]
test eax, eax
je 0x1003be11
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x54]
push edx
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x38]
cmp dword [esp + 0x54], 0xfffffffe
jne 0x1003be4a
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1003be18
mov eax, dword [ecx]
lea edx, [esp + 0x54]
push edx
push 0
push 0
push dword [esp + 0x24]
push ecx
call dword [eax + 0x10]
cmp dword [esp + 0x54], 0xfffffffe
jne 0x1003be4a
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x54]
push edx
push edi
push ecx
mov eax, dword [ecx]
call dword [eax + 0x38]
cmp dword [esp + 0x54], 0xfffffffe
jne 0x1003be4a
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1003be4a
mov eax, dword [ecx]
lea edx, [esp + 0x54]
push edx
push 0
push 0
push dword [esp + 0x24]
push ecx
call dword [eax + 0x10]
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3c8]
mov dword [esp + 0x60], 0xff
push 0
push esi
mov dword [esp + 0x24], 0
call dword [eax + 0x84]
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
test eax, eax
je 0x1003be90
push 0x3e8
push 0xff
push dword [esp + 0x1c]
call edi
mov dword [esp + 0x58], eax
jmp 0x1003bef5
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push 1
push 0
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003beb0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
jmp 0x1003bef5
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push 0
push 0
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003bed0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
jmp 0x1003bef5
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3cc]
push 0
push esi
call dword [eax + 0x84]
mov ecx, dword [esp + 0x58]
test eax, eax
cmovne ecx, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
push pe_nt_image_headers32
lea eax, [esp + 0x1e0]
mov dword [esp + 0x1dc], 0x114
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0x1d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x1e4], 0x44f2
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
jb 0x1003bf41
call dword [eax + 0x84]
jmp 0x1003bf47
call dword [eax + 0x80]
push 0xc8
mov dword [esp + 0x60], eax
lea eax, [esp + 0xc4]
push 0
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xcc]
add esp, 0xc
mov eax, dword [ecx]
push 0x64
push edx
push 0
push ecx
call dword [eax + 0x2c]
cmp byte [esp + 0x28], 0
je 0x1003bf98
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
cmp eax, 3
lea ecx, [esp + 0xc0]
cmovne ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
mov eax, dword [esi]
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x6c]
push ecx
push esi
call dword [eax + 0xac]
mov dword [esp + 0x6c], eax
mov eax, dword [esi]
push esi
call dword [eax + 0x68]
test eax, eax
je 0x1003c00a
mov dword [esp + 0x74], 0xff
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1005e1c0]
cmp dword [0x1005e1bc], esi
jne 0x1003c00a
cmp eax, 0x258
jae 0x1003c00a
mov ecx, dword [0x1005e1c4]
push 0x258
push 0xff
push eax
cmp ecx, dword [0x1005e3d0]
jne 0x1003bffd
call edi
mov dword [esp + 0x74], eax
jmp 0x1003c00a
call edi
mov ecx, 0xff
sub ecx, eax
mov dword [esp + 0x74], ecx
cmp byte [esp + 0x49], 0
lea ecx, [esp + 0x14]
mov eax, dword [esi]
push ecx
mov eax, dword [eax + 0x84]
je 0x1003c04a
push dword [0x1005e3c0]
mov dword [esp + 0x80], 0xff
push 0
push esi
call eax
test eax, eax
je 0x1003c072
push 0x3e8
push 0xff
push dword [esp + 0x1c]
call edi
jmp 0x1003c06e
push dword [0x1005e3c4]
push 0
push esi
call eax
test eax, eax
je 0x1003c072
push 0x3e8
push 0xff
push dword [esp + 0x1c]
call edi
mov byte [esp + 0x49], 1
mov dword [esp + 0x78], eax
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3dc]
mov dword [esp + 0x84], 0xff
push 0
push esi
call dword [eax + 0x84]
test eax, eax
jne 0x1003c0b1
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3c8]
push 0
push esi
call dword [eax + 0x84]
test eax, eax
je 0x1003c0bb
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
jmp 0x1003c0e0
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
push dword [0x1005e3cc]
push 0
push esi
call dword [eax + 0x84]
mov ecx, dword [esp + 0x7c]
test eax, eax
cmovne ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x9c]
lea eax, [esp + 0x40]
push eax
lea edx, [esp + 0xb4]
call fcn.1003a850
add esp, 4
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc