Function at 0x443040
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 + 0x6eaa8]
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.0x44311f.5
xor ecx, ecx
mov cl, byte [eax + 0x443918]
jmp dword [ecx*4 + 0x443904]
mov dword [esp + 0x1c], edi
jmp case.0x44311f.5
mov edx, dword [ebx + 0x72588]
mov dword [esp + 0x1c], 0x14ffff
sub edx, ebp
cmp edx, 0x28a
jb 0x4438f4
jmp 0x44316f
mov dword [esp + 0x1c], 0x5050ff
jmp case.0x44311f.5
mov eax, dword [ebx + 0x72588]
mov dword [esp + 0x1c], 0x5050ff
sub eax, ebp
cmp eax, 0x28a
jb 0x4438f4
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 0x4431f5
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 0x4431ba
mov eax, 3
jmp 0x4431c2
cmp byte [ecx], 0x80
sbb eax, eax
add eax, 2
inc ecx
dec edx
jne 0x4431ae
cmp eax, 1
jne 0x4431e1
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 0x44325a
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 0x443225
mov eax, 3
jmp 0x44322d
cmp byte [ecx], 0x80
sbb eax, eax
add eax, 2
inc ecx
dec edx
jne 0x443219
cmp eax, 1
jne 0x443246
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 0x4432ae
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 0x44328a
mov eax, 3
jmp 0x443292
cmp byte [ecx], 0x80
sbb eax, eax
add eax, 2
inc ecx
dec edx
jne 0x44327e
cmp eax, 1
jne 0x4432a6
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 0x4432c8
cmp cl, 0x80
jb 0x4432c5
add edx, 5
inc eax
jmp 0x4432c8
add edx, 4
inc eax
cmp eax, ebp
jl 0x4432b2
mov ecx, dword [esp + 0x18]
mov ebp, dword [ebx + 0x72588]
mov esi, dword [esp + 0x30]
mov al, byte [ecx + 4]
sub ebp, esi
cmp al, 0x15
jl 0x4432f9
cmp al, 0x17
jg 0x4432f9
cmp ebp, 0x50
jle 0x4432f4
mov ebp, 0xa
jmp 0x44331a
sar ebp, 3
jmp 0x44331a
cmp ebp, 0x160
jle 0x443308
mov ebp, 9
jmp 0x44331a
cmp ebp, 0x140
jle 0x443317
mov ebp, 0xa
jmp 0x44331a
sar ebp, 5
movsx eax, al
xor ecx, ecx
cmp byte [ebx + 0x73596], cl
lea esi, [eax - 0x15]
setne cl
cmp esi, 0x15
mov edi, ecx
ja case.0x44333e.23
xor ecx, ecx
mov cl, byte [esi + 0x443950]
jmp dword [ecx*4 + 0x443944]
xor edi, edi
xor eax, eax
mov cl, byte [esp + eax + 0x80]
test cl, cl
je 0x443362
cmp cl, 0x80
jb 0x44335f
add edi, 5
inc eax
jmp 0x443362
add edi, 4
inc eax
cmp eax, 0x64
jl 0x443349
lea edx, [esp + 0x80]
lea ecx, [ebx + 0x38128]
push edx
call fcn.004a5150
test eax, eax
jne 0x4433f2
lea esi, [ebx + 0x7f1c]
mov ecx, esi
call fcn.00402880
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.00402520
mov ecx, esi
call fcn.004028c0
mov ecx, esi
call fcn.00402880
lea edx, [esp + 0x80]
push 0x1e1eb4
push edx
inc ebx
push ebp
push ebx
mov ecx, esi
call fcn.00402520
mov ecx, esi
call fcn.004028c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
mov ax, word [ebx + 0x73078]
mov cx, word [ebx + 0x73058]
mov dx, word [ebx + 0x73038]
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.004173d0
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 0x4435c9
dec eax
je 0x443538
dec eax
jne 0x4438f4
movsx eax, word [esp + 0xec]
mov cx, word [ebx + 0x73076]
sub eax, ebp
movsx ebp, word [esp + 0xe8]
sub ebp, edx
mov dx, word [ebx + 0x73056]
push esi
push edi
shl cx, 1
push ecx
mov cx, word [ebx + 0x73036]
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.004173d0
mov ax, word [ebx + 0x73076]
mov cx, word [ebx + 0x73056]
mov dx, word [ebx + 0x73036]
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.004173d0
mov dx, word [ebx + 0x73076]
mov ax, word [ebx + 0x73056]
mov cx, word [ebx + 0x73036]
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.004173d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
movsx eax, word [esp + 0xec]
mov cx, word [ebx + 0x73076]
sub eax, ebp
movsx ebp, word [esp + 0xe8]
sub ebp, edx
mov dx, word [ebx + 0x73056]
push esi
push edi
shl cx, 1
push ecx
mov cx, word [ebx + 0x73036]
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.004173d0
mov ax, word [ebx + 0x73076]
mov cx, word [ebx + 0x73056]
mov dx, word [ebx + 0x73036]
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.004173d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
mov ax, word [ebx + 0x73076]
mov cx, word [ebx + 0x73056]
push esi
push edi
shl ax, 1
push eax
mov ax, word [ebx + 0x73036]
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.004173d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
mov eax, dword [esp + 0xf4]
test eax, eax
jne 0x443634
lea ecx, [ebx + 0x7f1c]
call fcn.00402880
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 + 0x37f60]
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.0x44367e
jmp dword [edx*4 + 0x443968]
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 + 0x7f1c]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004028e0
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.004028e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
jmp 0x4438b8
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 + 0x7f1c]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004028e0
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.004028e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
jmp 0x4438b8
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 + 0x7f1c]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004028e0
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.004028e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
jmp 0x4438b8
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 + 0x7f1c]
push 0
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.004028e0
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.004028e0
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.004028e0
mov eax, dword [esp + 0xf4]
test eax, eax
jne 0x4438f4
lea ecx, [ebx + 0x7f1c]
call fcn.004028c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10