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

Disassembly:
mov eax, dword [0x451578]
push esi
movsx eax, word [eax + 0x8f0]
lea eax, [eax + eax*4]
lea esi, [eax + eax*4]
add esi, esi
shr esi, 0xa
inc esi
shl esi, 0xa
cmp esi, 0x3000
ja 0x431369
mov esi, 0x3000
push 1
push 0x127c
call dword [sym.imp.MSVCRT.dll_calloc]
mov ecx, dword [0x451578]
mov dword [ecx + 0x7c], eax
mov edx, dword [0x451578]
mov ecx, dword [0x451574]
mov eax, dword [edx + 0x7c]
mov dword [0x45157c], eax
mov dword [eax + 0x18], ecx
mov edx, dword [0x45157c]
mov eax, dword [0x451578]
mov dword [edx + 0x1c], eax
mov ecx, dword [0x451574]
mov eax, dword [0x45157c]
mov edx, dword [ecx + 0xe0]
mov dword [eax + 0x1d4], edx
mov eax, dword [0x451578]
movsx edx, word [eax + 0x8f0]
lea ecx, [eax + 0x8d0]
shl edx, 3
push ecx
push edx
call fcn.0041ccc0
add esp, 0x10
test eax, eax
jne 0x4313e4
or ax, 0xffff
pop esi
ret
mov eax, dword [0x451578]
mov edx, dword [0x45157c]
mov ecx, dword [eax + 0x8d0]
mov dword [edx + 0x1278], ecx
mov eax, dword [0x451578]
mov edx, dword [0x45157c]
movsx ecx, word [eax + 0x8f2]
mov dword [edx + 0x54], ecx
mov eax, dword [0x451578]
lea ecx, [eax + 0x480]
movsx eax, word [eax + 0x8f2]
push ecx
lea edx, [eax*8]
sub edx, eax
lea ecx, [eax + edx*4]
lea edx, [eax + ecx*2]
add edx, edx
push edx
call fcn.0041ccc0
add esp, 8
test eax, eax
jne 0x431447
or ax, 0xffff
pop esi
ret
mov eax, dword [0x451578]
mov edx, dword [0x45157c]
mov ecx, dword [eax + 0x480]
mov dword [edx + 0x58], ecx
mov eax, dword [0x451578]
lea ecx, [eax + 0x8d4]
movsx eax, word [eax + 0x8f0]
cdq
and edx, 7
push ecx
add eax, edx
sar eax, 3
and eax, 0xfff8
add eax, 0x10
push eax
call fcn.0041ccc0
add esp, 8
test eax, eax
jne 0x431492
or ax, 0xffff
pop esi
ret
mov edx, dword [0x451578]
mov ecx, dword [0x45157c]
mov eax, dword [edx + 0x8d4]
mov dword [ecx + 0x1168], eax
mov edx, dword [0x451578]
mov ecx, dword [0x45157c]
movsx eax, word [edx + 0x8f0]
mov dword [ecx + 0x40], eax
mov eax, dword [0x45157c]
mov edx, esi
shr edx, 0xa
mov dword [eax + 0x94], edx
mov ecx, dword [0x451578]
add ecx, 0x8cc
lea edx, [esi + esi]
push ecx
push edx
call fcn.0041ccc0
add esp, 8
test eax, eax
jne 0x4314f3
or ax, 0xffff
pop esi
ret
mov eax, dword [0x451578]
mov edx, dword [0x45157c]
push edi
mov edi, dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [eax + 0x8cc]
mov dword [edx + 0xa0], ecx
mov eax, dword [0x45157c]
mov ecx, dword [eax + 0xa0]
mov dword [eax + 0x98], ecx
mov eax, dword [0x45157c]
mov edx, dword [eax + 0xa0]
add edx, esi
mov dword [eax + 0xa4], edx
mov eax, dword [0x45157c]
mov ecx, dword [0x451544]
mov dword [eax + 8], ecx
mov edx, dword [0x45157c]
mov eax, dword [0x45154c]
mov dword [edx], eax
mov edx, dword [0x45157c]
mov ecx, dword [0x451548]
mov dword [edx + 4], ecx
mov eax, dword [0x45157c]
mov ecx, dword [0x451548]
mov dword [eax + 4], ecx
mov edx, dword [0x45157c]
mov eax, dword [0x451550]
mov dword [edx + 0x10], eax
mov ecx, dword [0x45157c]
mov edx, dword [0x451554]
mov dword [ecx + 0xc], edx
mov eax, dword [0x45157c]
mov ecx, dword [0x451550]
mov dword [eax + 0x14], ecx
mov edx, dword [0x45157c]
mov eax, dword [edx + 0x14]
push eax
call edi
xor esi, esi
cmp eax, esi
je 0x4315c3
mov ecx, dword [0x45157c]
mov dword [ecx + 0x14], eax
mov edx, dword [0x45157c]
mov eax, dword [edx + 0x14]
push eax
call edi
cmp eax, esi
jne 0x4315aa
mov ecx, dword [0x45157c]
mov edx, dword [0x451540]
mov dword [ecx + 0x4c0], edx
mov eax, dword [0x45157c]
mov dword [eax + 0x4f4], 0x451540
mov ecx, dword [0x451578]
mov eax, dword [0x45157c]
mov dl, byte [ecx + 0x8dc]
mov byte [eax + 0x26], dl
mov ecx, dword [0x451578]
mov eax, dword [0x45157c]
mov edx, dword [ecx + 0x1c]
mov dword [eax + 0xb0], edx
mov ecx, dword [0x45157c]
mov eax, dword [0x451578]
mov edx, dword [ecx + 0xb0]
mov dword [eax + 0x8e8], edx
mov ecx, dword [0x451578]
mov eax, dword [0x45157c]
mov edx, dword [ecx + 0x20]
mov dword [eax + 0xb4], edx
mov ecx, dword [0x45157c]
mov eax, dword [0x451578]
mov edx, dword [ecx + 0xb4]
mov dword [eax + 0x8ec], edx
mov ecx, dword [0x451578]
mov eax, dword [0x45157c]
mov edx, dword [ecx + 0x3c]
or ecx, 0xffffffff
mov dword [eax + 0xa8], edx
mov eax, dword [0x45157c]
mov edx, 0x7ffff000
cmp dword [eax + 0xa8], ecx
jne 0x431682
mov dword [eax + 0xa8], edx
mov eax, dword [0x45157c]
mov edi, dword [0x451578]
mov edi, dword [edi + 0x40]
mov dword [eax + 0xac], edi
mov eax, dword [0x45157c]
cmp dword [eax + 0xac], ecx
jne 0x4316a9
mov dword [eax + 0xac], edx
mov eax, dword [0x45157c]
mov dword [eax + 0x3c], esi
mov ecx, dword [0x45157c]
mov word [ecx + 0x30], si
mov edx, dword [0x45157c]
mov word [edx + 0x32], si
mov eax, dword [0x45157c]
and word [eax + 0x28], 0x80
mov eax, dword [0x45157c]
or byte [eax + 0x28], 4
mov eax, dword [0x45157c]
mov dword [eax + 0x1a8], esi
mov ecx, dword [0x45157c]
mov dword [ecx + 0x4c4], esi
mov eax, dword [0x45157c]
mov edx, dword [eax + 0x1278]
sub edx, eax
mov dword [eax + 0x4ec], edx
mov ecx, dword [0x45157c]
mov eax, 0xffff8000
mov word [ecx + 0x502], ax
mov edx, dword [0x45157c]
mov word [edx + 0x4f0], ax
mov ecx, dword [0x45157c]
mov eax, 0x64
mov dword [ecx + 0x514], eax
mov edx, dword [0x45157c]
mov dword [edx + 0x510], eax
mov eax, dword [0x45157c]
mov cx, word [0x45155e]
mov word [eax + 0x4d2], cx
mov edx, dword [0x45157c]
mov eax, dword [0x451558]
mov dword [edx + 0x4d4], eax
call fcn.004398e0
mov ecx, dword [0x45157c]
mov edx, dword [0x4516d8]
mov dword [ecx + 0x51c], edx
mov eax, dword [0x45157c]
mov ecx, dword [0x4516dc]
mov dword [eax + 0x520], ecx
mov edx, dword [0x45157c]
mov eax, dword [0x4516e0]
mov dword [edx + 0x524], eax
mov ecx, dword [0x45157c]
mov dword [ecx + 0x438], esi
mov edx, dword [0x45157c]
mov word [edx + 0x436], si
mov eax, dword [0x45157c]
mov dword [eax + 0x43c], 0xfffffffd
mov ecx, dword [0x451578]
mov ax, word [ecx + 0x968]
cmp ax, 0xffff
jne 0x4317e7
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [0x45157c]
mov word [edx + 0x18c], ax
jmp 0x4317f4
mov ecx, dword [0x45157c]
mov word [ecx + 0x18c], ax
mov eax, dword [0x45157c]
mov edi, dword [sym.imp.USER32.dll_ShowCursor]
push esi
or byte [eax + 0x28], 0x40
call edi
push 1
call edi
mov edx, dword [0x45157c]
mov edi, 0x534
mov word [edx + 0x4d0], ax
mov eax, dword [0x45157c]
cmp dword [edi + eax], esi
jne 0x431846
push 0x10
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
cmp eax, esi
je 0x43183b
mov dword [eax], esi
mov dword [eax + 8], esi
jmp 0x43183d
xor eax, eax
mov ecx, dword [0x45157c]
mov dword [edi + ecx], eax
add edi, 4
cmp edi, 0x934
jl 0x43181c
mov edx, dword [0x451578]
pop edi
xor ax, ax
pop esi
mov dword [edx + 0x78], 1
ret