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

Disassembly:
sub esp, 0xd4
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x80]
rep stosd dword es:[edi], eax
mov dword [esp + 0x38], eax
xor edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x40], eax
xor ecx, ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x74], edx
mov word [esp + 0x4c], ax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x5c], ecx
mov word [esp + 0x7c], dx
mov edx, dword [ebx + eax*4 + 0x4a264]
mov dword [esp + 0x60], ecx
xor eax, eax
mov word [esp + 0x64], cx
mov ebp, dword [edx + 0x10]
mov dword [esp + 0x30], ebp
mov edi, dword [edx + 8]
or ecx, 0xffffffff
lea esi, [esp + 0x80]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x14], 0
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movsx eax, byte [edx + 4]
dec eax
lea esi, [esp + 0x80]
mov edi, 0xffffff
cmp eax, 0x29
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], edi
ja case.0x43a0df.5
xor ecx, ecx
mov cl, byte [eax + 0x43a8d8]
jmp dword [ecx*4 + 0x43a8c4]
mov dword [esp + 0x1c], edi
jmp case.0x43a0df.5
mov edx, dword [ebx + 0x4dd44]
mov dword [esp + 0x1c], 0x14ffff
sub edx, ebp
cmp edx, 0x28a
jb 0x43a8b4
jmp 0x43a12f
mov dword [esp + 0x1c], 0x5050ff
jmp case.0x43a0df.5
mov eax, dword [ebx + 0x4dd44]
mov dword [esp + 0x1c], 0x5050ff
sub eax, ebp
cmp eax, 0x28a
jb 0x43a8b4
add ebp, 0x28a
mov dword [esp + 0x30], ebp
lea edi, [esp + 0x80]
or ecx, 0xffffffff
xor eax, eax
mov ebp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x43a1b5
mov ecx, 5
lea esi, [esp + 0x80]
lea edi, [esp + 0x38]
mov eax, 1
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x38]
mov edx, ebp
cmp eax, 2
jne 0x43a17a
mov eax, 3
jmp 0x43a182
cmp byte [ecx], 0x80
sbb eax, eax
add eax, 2
inc ecx
dec edx
jne 0x43a16e
cmp eax, 1
jne 0x43a1a1
mov cl, byte [esp + 0x94]
lea edx, [esp + 0x81]
mov byte [esp + 0x4c], cl
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], 1
add eax, ebp
mov dword [esp + 0x10], eax
mov esi, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x43a21a
mov ecx, 5
lea edi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x50]
mov eax, 1
mov edx, ebp
cmp eax, 2
jne 0x43a1e5
mov eax, 3
jmp 0x43a1ed
cmp byte [ecx], 0x80
sbb eax, eax
add eax, 2
inc ecx
dec edx
jne 0x43a1d9
cmp eax, 1
jne 0x43a206
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 0x14]
inc eax
mov byte [esp + 0x64], cl
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], 2
add eax, ebp
mov dword [esp + 0x10], eax
mov esi, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x43a26e
mov ecx, 5
lea edi, [esp + 0x68]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x68]
mov eax, 1
mov edx, ebp
cmp eax, 2
jne 0x43a24a
mov eax, 3
jmp 0x43a252
cmp byte [ecx], 0x80
sbb eax, eax
add eax, 2
inc ecx
dec edx
jne 0x43a23e
cmp eax, 1
jne 0x43a266
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0x14]
mov byte [esp + 0x7c], al
mov dword [esp + 0x14], 3
xor edx, edx
xor eax, eax
mov cl, byte [esp + eax + 0x38]
test cl, cl
je 0x43a288
cmp cl, 0x80
jb 0x43a285
add edx, 5
inc eax
jmp 0x43a288
add edx, 4
inc eax
cmp eax, ebp
jl 0x43a272
mov ecx, dword [esp + 0x18]
mov ebp, dword [ebx + 0x4dd44]
mov esi, dword [esp + 0x30]
mov al, byte [ecx + 4]
sub ebp, esi
cmp al, 0x15
jl 0x43a2b9
cmp al, 0x17
jg 0x43a2b9
cmp ebp, 0x50
jle 0x43a2b4
mov ebp, 0xa
jmp 0x43a2da
sar ebp, 3
jmp 0x43a2da
cmp ebp, 0x160
jle 0x43a2c8
mov ebp, 9
jmp 0x43a2da
cmp ebp, 0x140
jle 0x43a2d7
mov ebp, 0xa
jmp 0x43a2da
sar ebp, 5
movsx eax, al
xor ecx, ecx
cmp byte [ebx + 0x4ebe7], cl
lea esi, [eax - 0x15]
setne cl
cmp esi, 0x15
mov edi, ecx
ja case.0x43a2fe.23
xor ecx, ecx
mov cl, byte [esi + 0x43a910]
jmp dword [ecx*4 + 0x43a904]
xor edi, edi
xor eax, eax
mov cl, byte [esp + eax + 0x80]
test cl, cl
je 0x43a322
cmp cl, 0x80
jb 0x43a31f
add edi, 5
inc eax
jmp 0x43a322
add edi, 4
inc eax
cmp eax, 0x64
jl 0x43a309
lea edx, [esp + 0x80]
lea ecx, [ebx + 0x36074]
push edx
call fcn.0048fc00
test eax, eax
jne 0x43a3b2
lea esi, [ebx + 0x6004]
mov ecx, esi
call fcn.00402250
movsx eax, word [esp + 0xec]
movsx ebx, word [esp + 0xe8]
sub eax, ebp
lea ecx, [esp + 0x80]
push 0x1e1eb4
sub ebx, edi
lea ebp, [eax - 0x41]
push ecx
push ebp
push ebx
mov ecx, esi
call fcn.00401ef0
mov ecx, esi
call fcn.00402290
mov ecx, esi
call fcn.00402250
lea edx, [esp + 0x80]
push 0x1e1eb4
push edx
inc ebx
push ebp
push ebx
mov ecx, esi
call fcn.00401ef0
mov ecx, esi
call fcn.00402290
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
mov ax, word [ebx + 0x4e6fa]
mov cx, word [ebx + 0x4e6da]
mov dx, word [ebx + 0x4e6ba]
push 0
shl ax, 2
push 0
push eax
shl cx, 2
push ecx
lea eax, [esp + 0x90]
movsx ecx, word [esp + 0xfc]
shl dx, 2
push edx
sub ecx, ebp
movsx edx, word [esp + 0xfc]
sub ecx, 0x41
push eax
sub edx, edi
push ecx
push edx
mov ecx, ebx
call fcn.00414890
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
mov esi, 0x17
sub esi, eax
mov eax, dword [esp + 0x14]
dec eax
je 0x43a589
dec eax
je 0x43a4f8
dec eax
jne 0x43a8b4
movsx eax, word [esp + 0xec]
mov cx, word [ebx + 0x4e6f8]
sub eax, ebp
movsx ebp, word [esp + 0xe8]
sub ebp, edx
mov dx, word [ebx + 0x4e6d8]
push esi
push edi
shl cx, 1
push ecx
mov cx, word [ebx + 0x4e6b8]
shl dx, 1
push edx
mov dword [esp + 0x24], eax
shl cx, 1
lea edx, [esp + 0x48]
push ecx
add eax, 0xffffff9f
push edx
push eax
push ebp
mov ecx, ebx
call fcn.00414890
mov ax, word [ebx + 0x4e6f8]
mov cx, word [ebx + 0x4e6d8]
mov dx, word [ebx + 0x4e6b8]
push esi
shl ax, 1
push edi
push eax
shl cx, 1
push ecx
mov ecx, dword [esp + 0x24]
shl dx, 1
lea eax, [esp + 0x60]
push edx
add ecx, 0xffffffaf
push eax
push ecx
push ebp
mov ecx, ebx
call fcn.00414890
mov dx, word [ebx + 0x4e6f8]
mov ax, word [ebx + 0x4e6d8]
mov cx, word [ebx + 0x4e6b8]
push esi
shl dx, 1
push edi
push edx
shl ax, 1
push eax
mov eax, dword [esp + 0x24]
shl cx, 1
lea edx, [esp + 0x78]
push ecx
add eax, 0xffffffbf
push edx
push eax
push ebp
mov ecx, ebx
call fcn.00414890
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
movsx eax, word [esp + 0xec]
mov cx, word [ebx + 0x4e6f8]
sub eax, ebp
movsx ebp, word [esp + 0xe8]
sub ebp, edx
mov dx, word [ebx + 0x4e6d8]
push esi
push edi
shl cx, 1
push ecx
mov cx, word [ebx + 0x4e6b8]
shl dx, 1
push edx
mov dword [esp + 0x24], eax
shl cx, 1
lea edx, [esp + 0x48]
push ecx
add eax, 0xffffffaf
push edx
push eax
push ebp
mov ecx, ebx
call fcn.00414890
mov ax, word [ebx + 0x4e6f8]
mov cx, word [ebx + 0x4e6d8]
mov dx, word [ebx + 0x4e6b8]
push esi
shl ax, 1
push edi
push eax
shl cx, 1
push ecx
mov ecx, dword [esp + 0x24]
shl dx, 1
lea eax, [esp + 0x60]
push edx
add ecx, 0xffffffbf
push eax
push ecx
push ebp
mov ecx, ebx
call fcn.00414890
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
mov ax, word [ebx + 0x4e6f8]
mov cx, word [ebx + 0x4e6d8]
push esi
push edi
shl ax, 1
push eax
mov ax, word [ebx + 0x4e6b8]
shl cx, 1
shl ax, 1
push ecx
push eax
movsx eax, word [esp + 0x100]
lea ecx, [esp + 0x4c]
sub eax, ebp
push ecx
sub eax, 0x41
movsx ecx, word [esp + 0x100]
sub ecx, edx
push eax
push ecx
mov ecx, ebx
call fcn.00414890
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
mov eax, dword [esp + 0xf4]
test eax, eax
jne 0x43a5f4
lea ecx, [ebx + 0x6004]
call fcn.00402250
lea edi, [esp + 0x80]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
push ecx
mov ecx, dword [ebx + 0x36048]
lea eax, [esp + 0x88]
push eax
push ecx
call dword [sym.imp.gdi32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 3
ja case.default.0x43a63e
jmp dword [edx*4 + 0x43a928]
movsx esi, word [esp + 0xec]
movsx edi, word [esp + 0xe8]
sub esi, ebp
lea ecx, [edi + 0x51]
push esi
lea eax, [esi - 0x41]
push ecx
mov dword [esp + 0x20], eax
push eax
lea edx, [edi - 0x4f]
lea eax, [esp + 0x2c]
push edx
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
lea ebp, [ebx + 0x6004]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
lea ecx, [esi + 1]
lea eax, [edi + 0x50]
push ecx
lea edx, [esi - 0x40]
mov dword [esp + 0x14], eax
add edi, 0xffffffb0
push eax
push edx
lea eax, [esp + 0x2c]
push edi
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
jmp 0x43a878
movsx esi, word [esp + 0xec]
movsx edi, word [esp + 0xe8]
sub esi, ebp
lea ecx, [edi + 0x51]
push esi
lea eax, [esi - 0x53]
push ecx
mov dword [esp + 0x20], eax
push eax
lea edx, [edi - 0x4f]
lea eax, [esp + 0x2c]
push edx
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
lea ebp, [ebx + 0x6004]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
lea ecx, [esi + 1]
lea eax, [edi + 0x50]
push ecx
lea edx, [esi - 0x52]
mov dword [esp + 0x14], eax
add edi, 0xffffffb0
push eax
push edx
lea eax, [esp + 0x2c]
push edi
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
jmp 0x43a878
movsx esi, word [esp + 0xec]
movsx edi, word [esp + 0xe8]
sub esi, ebp
lea ecx, [edi + 0x51]
push esi
lea eax, [esi - 0x65]
push ecx
mov dword [esp + 0x20], eax
push eax
lea edx, [edi - 0x4f]
lea eax, [esp + 0x2c]
push edx
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
lea ebp, [ebx + 0x6004]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
lea ecx, [esi + 1]
lea eax, [edi + 0x50]
push ecx
lea edx, [esi - 0x64]
mov dword [esp + 0x14], eax
add edi, 0xffffffb0
push eax
push edx
lea eax, [esp + 0x2c]
push edi
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
jmp 0x43a878
movsx esi, word [esp + 0xec]
movsx edi, word [esp + 0xe8]
sub esi, ebp
lea ecx, [edi + 0x51]
push esi
lea eax, [esi - 0x77]
push ecx
mov dword [esp + 0x20], eax
push eax
lea edx, [edi - 0x4f]
lea eax, [esp + 0x2c]
push edx
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
lea ebp, [ebx + 0x6004]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
lea ecx, [esi + 1]
lea eax, [edi + 0x50]
push ecx
lea edx, [esi - 0x76]
mov dword [esp + 0x14], eax
add edi, 0xffffffb0
push eax
push edx
lea eax, [esp + 0x2c]
push edi
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x80]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
push ecx
lea edx, [esp + 0x2c]
push edi
push edx
call dword [sym.imp.user32.dll_SetRect]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x80]
push eax
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004022b0
mov eax, dword [esp + 0xf4]
test eax, eax
jne 0x43a8b4
lea ecx, [ebx + 0x6004]
call fcn.00402290
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10