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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x200b8
call fcn.00463d00
push ebx
push ebp
push esi
mov esi, dword [0x4c46ec]
cmp esi, 0x100
mov ebx, ecx
push edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], esi
jbe 0x43ef35
mov esi, 0x100
mov dword [esp + 0x38], esi
mov eax, dword [0x4c46e8]
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push 0x15
push esi
push esi
push eax
call dword [ecx + 0x6c]
xor edi, edi
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebp, eax
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
push edi
mov dword [esp + 0x94], eax
push edi
mov dword [esp + 0x9c], eax
lea ecx, [esp + 0x58]
push ecx
mov dword [esp + 0xa4], eax
push edi
lea edx, [esp + 0x8c]
mov dword [esp + 0xac], eax
push edx
mov dword [esp + 0xb4], eax
push ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0xbc], eax
mov dword [esp + 0x94], 0x28
mov dword [esp + 0xa4], edi
mov word [esp + 0xa2], 0x20
mov word [esp + 0xa0], 1
mov dword [esp + 0x98], 0x100
mov dword [esp + 0x9c], 0xffffff80
mov dword [esp + 0xa8], 0x20000
mov dword [esp + 0x68], edi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
mov dword [esp + 0x80], eax
call edi
mov ecx, dword [ebx + 0x42504]
lea eax, [ebx + 0x400]
push eax
push 0
push 2
push 2
push 4
push 0
push 0
push 0
push 0
push ecx
push 0
push 0
push 0
push 0x48
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
push ebp
call edi
push 0xffffff
push ebp
call dword [sym.imp.GDI32.dll_SetTextColor]
xor edi, edi
push edi
push ebp
call dword [sym.imp.GDI32.dll_SetBkColor]
push 6
push ebp
call dword [sym.imp.GDI32.dll_SetTextAlign]
push edi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esp + 0x64], eax
mov dword [esp + 0xac], edi
mov eax, dword [esp + 0x30]
push edi
push edi
lea ecx, [esp + 0x5c]
push ecx
mov dword [esp + 0xb4], edi
mov dword [esp + 0xbc], 0x100
mov dword [esp + 0xc0], 0x80
mov edx, dword [eax]
push eax
call dword [edx + 0x24]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
imul ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], eax
lea eax, [ebx + 0x508]
mov ecx, 0x100
mov edx, 0xbf800000
mov dword [eax + 4], edx
mov dword [eax], edx
mov dword [eax - 4], edx
mov dword [eax - 8], edx
add eax, 0x10
dec ecx
jne 0x43f0d7
xor eax, eax
mov dword [esp + 0x6c], 0x80
mov dword [esp + 0x74], eax
mov dword [esp + 0x24], eax
lea ebx, [ebx]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x64]
push eax
lea ecx, [esp + 0xac]
push ecx
push ebp
call dword [sym.imp.USER32.dll_FillRect]
push 1
lea edx, [esp + 0x1b]
push edx
push 0
push 0x80
push ebp
call dword [sym.imp.GDI32.dll_TextOutA]
mov esi, dword [esp + 0x50]
mov ecx, 0x8000
xor eax, eax
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
lea edi, [esp + 0xc8]
mov dword [esp + 0x34], 0x80
mov eax, esi
mov ecx, edi
mov edx, 0x100
lea esp, [esp]
mov ebx, dword [eax]
mov dword [ecx], ebx
add eax, 4
add ecx, 0x200
dec edx
jne 0x43f160
mov eax, dword [esp + 0x34]
add esi, 0x400
add edi, 4
dec eax
mov dword [esp + 0x34], eax
jne 0x43f150
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x6c]
xor eax, eax
lea ebx, [esp + 0xc8]
mov ecx, ebx
mov edx, 0x100
lea esp, [esp]
cmp byte [ecx], 0
je 0x43f1b1
cmp eax, esi
jae 0x43f1ab
mov esi, eax
cmp eax, edi
jbe 0x43f1b1
mov edi, eax
add ecx, 0x200
dec edx
jne 0x43f1a0
inc eax
add ebx, 4
cmp eax, 0x80
jne 0x43f195
mov eax, dword [esp + 0x24]
inc eax
cmp eax, 0x100
mov dword [esp + 0x74], edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x24], eax
jne 0x43f100
dec esi
inc edi
mov eax, edi
sub eax, esi
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
add eax, 0x504
mov dword [esp + 0x6c], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x60], eax
jmp 0x43f220
mov ebp, dword [esp + 0x48]
jmp 0x43f220
mov edx, dword [esp + 0x64]
mov cl, byte [esp + 0x24]
push edx
lea eax, [esp + 0xac]
push eax
push ebp
mov byte [esp + 0x23], cl
call dword [sym.imp.USER32.dll_FillRect]
push 1
lea ecx, [esp + 0x1b]
push ecx
push 0
push 0x80
push ebp
call dword [sym.imp.GDI32.dll_TextOutA]
mov esi, dword [esp + 0x50]
mov ecx, 0x8000
xor eax, eax
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
lea edi, [esp + 0xc8]
mov ebp, 0x80
mov eax, esi
mov ecx, edi
mov edx, 0x100
lea ebx, [ebx]
mov ebx, dword [eax]
mov dword [ecx], ebx
add eax, 4
add ecx, 0x200
dec edx
jne 0x43f280
add esi, 0x400
add edi, 4
dec ebp
jne 0x43f271
lea edx, [esp + 0xc8]
xor edi, edi
xor ebp, ebp
mov esi, 0x100
mov ebx, 0x80
xor ecx, ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
xor eax, eax
lea ecx, [ecx]
cmp byte [edx], 0
je 0x43f2dd
cmp eax, esi
jae 0x43f2cb
mov esi, eax
cmp eax, ebp
jbe 0x43f2d1
mov ebp, eax
cmp ecx, ebx
jae 0x43f2d7
mov ebx, ecx
cmp ecx, edi
jbe 0x43f2dd
mov edi, ecx
inc eax
add edx, 0x200
cmp eax, 0x100
jne 0x43f2c0
mov edx, dword [esp + 0x28]
inc ecx
add edx, 4
cmp ecx, 0x80
mov dword [esp + 0x28], edx
jne 0x43f2b7
cmp esi, ebp
jg 0x43f632
cmp ebx, edi
jg 0x43f632
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x4c]
dec esi
inc ebp
mov dword [esp + 0xc0], ebp
sub ebp, esi
add edx, ebp
inc ecx
mov dword [esp + 0x5c], ecx
lea ecx, [eax + ebp + 4]
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0xb8], esi
mov dword [esp + 0x34], edx
jb 0x43f466
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
add eax, 4
add ebx, eax
add eax, ebx
cmp eax, esi
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], ebx
jb 0x43f466
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
xor ebx, ebx
push eax
mov dword [esp + 0x50], ebx
call dword [edx + 0x28]
mov eax, dword [0x4c46e8]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 1
push 0x15
push ebx
push ebx
push esi
push esi
push eax
call dword [ecx + 0x50]
test eax, eax
jge 0x43f3b1
mov eax, dword [0x4c46e8]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 2
push 0x15
push ebx
push ebx
push esi
push esi
push eax
call dword [ecx + 0x50]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov esi, dword [esp + 0x30]
lea edx, [esp + 0x44]
push edx
push 0
push eax
call dword [ecx + 0x3c]
mov edx, dword [esp + 0x44]
mov eax, dword [0x4c46e8]
mov ecx, dword [eax]
push 0
push edx
push 0
push 0
push esi
push eax
call dword [ecx + 0x70]
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push eax
call fcn.00471d4a
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov dword [edx + ecx*4], eax
mov edx, dword [esp + 0x24]
inc ecx
cmp ecx, edx
mov dword [esp + 0x2c], ecx
je 0x43f436
mov edi, dword [esp + 0x3c]
mov esi, ecx
jmp 0x43f420
mov eax, dword [esp + 0x18]
nop
mov dword [edi + esi*4], eax
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jne 0x43f41b
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
push 0
push 0
lea ecx, [esp + 0x5c]
push ecx
push eax
call dword [edx + 0x24]
mov ecx, dword [esp + 0x54]
imul ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x58]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x38]
fild dword [esp + 0x38]
test eax, eax
jge 0x43f478
fadd dword [0x4a368c]
mov eax, dword [esp + 0x40]
fild dword [esp + 0x40]
test eax, eax
jge 0x43f48a
fadd dword [0x4a368c]
test ebx, ebx
fdiv st(1)
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ebx
fstp dword [ecx - 4]
fild dword [esp + 0x20]
jge 0x43f4a5
fadd dword [0x4a368c]
fdiv st(1)
add ebp, eax
test ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebp
fstp dword [ecx]
fild dword [esp + 0x28]
jge 0x43f4c1
fadd dword [0x4a368c]
fdiv st(1)
mov edx, dword [esp + 0x1c]
add edx, ebx
test edx, edx
mov dword [esp + 0x28], edx
fstp dword [ecx + 4]
fild dword [esp + 0x28]
jge 0x43f4de
fadd dword [0x4a368c]
fdiv st(1)
mov esi, dword [esp + 0x6c]
fstp dword [ecx + 8]
cmp esi, dword [esp + 0x74]
fstp st(0)
je 0x43f62b
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0xb8]
shl eax, 2
sub ebx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebx
mov edi, edi
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
lea ecx, [ebx + esi]
imul ecx, dword [esp + 0x54]
add ecx, eax
add ecx, edx
cmp ebp, edi
je 0x43f61a
mov edx, ebp
shl edx, 7
add edx, esi
lea edx, [esp + edx*4 - 0x138]
lea ebx, [ebx]
test ebp, ebp
jbe 0x43f56c
test esi, esi
jbe 0x43f54e
movzx eax, byte [edx - 4]
jmp 0x43f553
mov eax, 0xff
movzx ebx, byte [edx]
add eax, ebx
cmp esi, 0x7f
jae 0x43f565
movzx ebx, byte [edx + 4]
add eax, ebx
jmp 0x43f571
add eax, 0xff
jmp 0x43f571
mov eax, 0x2fd
test esi, esi
jbe 0x43f580
movzx ebx, byte [edx + 0x1fc]
add eax, ebx
jmp 0x43f585
add eax, 0xff
movzx ebx, byte [edx + 0x200]
add eax, ebx
cmp esi, 0x7f
jae 0x43f59e
movzx ebx, byte [edx + 0x204]
add eax, ebx
jmp 0x43f5a3
add eax, 0xff
cmp ebp, 0xff
jae 0x43f5df
test esi, esi
jbe 0x43f5ba
movzx ebx, byte [edx + 0x3fc]
add eax, ebx
jmp 0x43f5bf
add eax, 0xff
movzx ebx, byte [edx + 0x400]
add eax, ebx
cmp esi, 0x7f
jae 0x43f5d8
movzx ebx, byte [edx + 0x404]
add eax, ebx
jmp 0x43f5e4
add eax, 0xff
jmp 0x43f5e4
add eax, 0x2fd
cmp eax, 0x6f9
mov al, byte [edx + 0x200]
mov byte [ecx + 2], 0xff
mov byte [ecx + 1], 0xff
mov byte [ecx], 0xff
mov byte [ecx + 3], al
add ecx, 4
inc ebp
add edx, 0x200
cmp ebp, edi
jne 0x43f540
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x74]
inc esi
cmp esi, eax
jne 0x43f510
mov ebp, dword [esp + 0x20]
add ebp, 4
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
inc eax
add edx, 0x10
cmp eax, 0x100
mov dword [esp + 0x24], eax
mov dword [esp + 0x60], edx
jne 0x43f214
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x43f691
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x43f691
mov eax, dword [esp + 0x34]
xor edx, edx
div esi
test eax, eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jge 0x43f67b
fadd dword [0x4a368c]
test ecx, ecx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
jge 0x43f68d
fadd dword [0x4a368c]
fdivp st(1)
jmp 0x43f697
fld dword [0x4a7e1c]
mov ebx, dword [esp + 0x3c]
fmul dword [0x4a2018]
lea ecx, [ebx + 0x1500]
lea eax, [ebx + 0x500]
mov edx, 0x100
mov esi, 0x3a83126f
xor edi, edi
lea esp, [esp]
cmp dword [eax], 0xbf800000
jne 0x43f6d7
fst dword [ecx]
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax], edi
mov dword [eax + 4], edi
jmp 0x43f6e6
fld dword [eax + 8]
fsub dword [eax]
fld dword [eax + 0xc]
fsub dword [eax + 4]
fdivp st(1)
fstp dword [ecx]
add ecx, 4
add eax, 0x10
dec edx
jne 0x43f6c0
mov eax, dword [esp + 0x30]
fstp st(0)
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
mov esi, dword [esp + 0x38]
mov eax, dword [0x4c46e8]
mov edx, dword [eax]
lea ecx, [esp + 0x18]
push ecx
push 1
push 0x15
push edi
push edi
push esi
push esi
push eax
call dword [edx + 0x50]
test eax, eax
jge 0x43f733
mov eax, dword [0x4c46e8]
mov edx, dword [eax]
lea ecx, [esp + 0x18]
push ecx
push 2
push 0x15
push edi
push edi
push esi
push esi
push eax
call dword [edx + 0x50]
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x44]
push ecx
push edi
push eax
call dword [edx + 0x3c]
mov ecx, dword [esp + 0x44]
mov eax, dword [0x4c46e8]
mov edx, dword [eax]
push edi
push ecx
push edi
push edi
push esi
push eax
call dword [edx + 0x70]
mov eax, dword [esp + 0x44]
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push eax
call fcn.00471d4a
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, 0x100
mov dword [esp + 0x2c], ecx
je 0x43f7aa
mov edi, dword [esp + 0x3c]
mov esi, ecx
jmp 0x43f798
mov eax, dword [esp + 0x18]
mov dword [edi + esi*4], eax
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
inc esi
cmp esi, 0x100
jne 0x43f794
push 0xc00
call fcn.00459630
mov ebp, dword [esp + 0x4c]
add esp, 4
mov edi, eax
push edi
push 0xff
push 0
push ebp
call dword [sym.imp.GDI32.dll_GetCharABCWidthsFloatA]
test eax, eax
jne 0x43f82f
push 0xc00
call fcn.00459630
add esp, 4
mov esi, eax
push esi
push 0xff
push 0
push ebp
call dword [sym.imp.GDI32.dll_GetCharABCWidthsA]
test eax, eax
je 0x43f826
mov edx, esi
mov ecx, esi
lea eax, [edi + 4]
sub edx, edi
mov ebp, 0x100
fild dword [ecx]
fstp dword [eax - 4]
mov ebx, dword [edx + eax]
test ebx, ebx
fild dword [edx + eax]
jge 0x43f815
fadd dword [0x4a368c]
fstp dword [eax]
add ecx, 0xc
fild dword [ecx - 4]
add eax, 0xc
dec ebp
fstp dword [eax - 8]
jne 0x43f800
push esi
call fcn.00459680
add esp, 4
mov edx, dword [esp + 0x1c]
fild dword [esp + 0x1c]
test edx, edx
jge 0x43f841
fadd dword [0x4a368c]
fdivr dword [0x4a0320]
mov ebx, dword [esp + 0x3c]
lea ecx, [ebx + 0x1904]
lea edx, [ebx + 0x1500]
lea esi, [edi + 4]
mov ebp, 0x100
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fmul dword [esi - 4]
fstp dword [ecx - 4]
fld dword [esp + 0x1c]
fmul dword [esi + 4]
fstp dword [ecx]
fld dword [0x4a7e1c]
fld dword [esi]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x43f88f
fld dword [esp + 0x1c]
fmul dword [esi]
fstp dword [edx]
fld dword [edx]
add edx, 4
fadd dword [ecx]
add esi, 0xc
add ecx, 8
dec ebp
fadd dword [ecx - 0xc]
fstp dword [edx + 0xbfc]
jne 0x43f863
push edi
call fcn.00459680
push 0x80000
call fcn.00459630
add esp, 8
mov ebp, eax
mov eax, dword [esp + 0x48]
push ebp
push 0x10000
push eax
call dword [sym.imp.GDI32.dll_GetKerningPairsA]
mov edx, eax
xor eax, eax
test edx, edx
mov ecx, 0x10000
lea edi, [ebx + 0x2500]
rep stosd dword es:[edi], eax
je 0x43f924
lea eax, [ebp + 2]
jmp 0x43f8f0
mov si, word [eax - 2]
cmp si, 0x100
jae 0x43f91e
mov cx, word [eax]
cmp cx, 0x100
jae 0x43f91e
fild dword [eax + 2]
movzx esi, si
movzx ecx, cx
fmul dword [esp + 0x1c]
shl esi, 8
add esi, ecx
fstp dword [ebx + esi*4 + 0x2500]
add eax, 8
dec edx
jne 0x43f8f0
push ebp
call fcn.00459680
mov esi, dword [esp + 0x4c]
add esp, 4
push 0
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0x78]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret