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

Disassembly:
push 0xffffffffffffffff
push 0x527b88
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov eax, dword [0x568fd0]
xor eax, esp
push eax
lea eax, [esp + 0x44]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
test ecx, ecx
jg 0x4b9d81
mov dword [esp + 0x2c], 0
jmp 0x4b9d9d
cmp ecx, dword [edx + 0x4c]
jge 0x4b9d96
mov eax, dword [edx + 4]
test eax, eax
je 0x4b9d96
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x2c], eax
jmp 0x4b9d9d
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 0x2c8]
mov dword [esp + 0x1c], ebp
inc ebp
test ebp, ebp
jg 0x4b9db7
xor ebp, ebp
jmp 0x4b9f28
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 8]
lea esi, [ebx + 4]
push esi
call ecx
cmp ebp, eax
jl 0x4b9dda
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov ebp, eax
mov dword [esp + 0x18], eax
jmp 0x4b9f2c
lea edi, [ebp - 1]
mov esi, ebx
call fcn.0049d7d0
test al, al
je 0x4b9dee
inc ebp
jmp 0x4b9f28
mov eax, dword [ebx + 0x1ec]
test eax, eax
je 0x4b9f28
cmp eax, 0xfde9
jne 0x4b9e47
lea ecx, [ebx + 0x10]
mov eax, ebp
call fcn.004a5c10
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4b9f28
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x34]
push edx
push ebp
mov edi, ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], ebp
call fcn.0049d8f0
test al, al
je 0x4b9f28
mov ebp, dword [esp + 0x28]
jmp 0x4b9f28
mov edi, dword [ebx + 4]
mov eax, dword [edi + 0x14]
lea esi, [ebx + 4]
push ebp
push esi
call eax
mov ecx, dword [edi + 0x18]
push eax
push esi
call ecx
mov dword [esp + 0x30], eax
cmp ebp, eax
je 0x4b9f28
mov esi, ebp
jle 0x4b9f28
lea edi, [ebp - 1]
cmp edi, dword [ebx + 0x1c]
jge 0x4b9e8a
test edi, edi
jge 0x4b9e82
mov byte [esp + 0x20], 0
jmp 0x4b9ea5
mov edx, dword [ebx + 0x10]
mov al, byte [edi + edx]
jmp 0x4b9ea1
cmp edi, dword [ebx + 0x18]
jl 0x4b9e96
mov byte [esp + 0x20], 0
jmp 0x4b9ea5
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebx + 0x10]
add ecx, edi
mov al, byte [ecx + edx]
mov byte [esp + 0x20], al
mov edx, dword [esp + 0x20]
mov ecx, dword [ebx + 4]
lea eax, [ebx + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
test al, al
je 0x4b9ec2
dec esi
dec edi
cmp esi, dword [esp + 0x30]
jg 0x4b9e72
cmp esi, ebp
jge 0x4b9f28
cmp esi, dword [ebx + 0x1c]
jge 0x4b9ee2
test esi, esi
jge 0x4b9ed6
mov byte [esp + 0x20], 0
jmp 0x4b9efb
mov ecx, dword [ebx + 0x10]
mov dl, byte [esi + ecx]
mov byte [esp + 0x20], dl
jmp 0x4b9efb
cmp esi, dword [ebx + 0x18]
jl 0x4b9eee
mov byte [esp + 0x20], 0
jmp 0x4b9efb
mov eax, dword [ebx + 0x20]
add eax, dword [ebx + 0x10]
mov cl, byte [eax + esi]
mov byte [esp + 0x20], cl
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 4]
mov edx, dword [edx + 0x48]
lea eax, [ebx + 4]
push ecx
push eax
call edx
xor ecx, ecx
test al, al
setne cl
inc ecx
lea eax, [ecx + esi]
cmp eax, ebp
je 0x4b9f28
jg 0x4b9f25
mov esi, eax
cmp esi, ebp
jl 0x4b9ec6
jmp 0x4b9f28
lea ebp, [ecx + esi]
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x20], edx
add edx, eax
mov dword [esp + 0x30], edx
test ecx, ecx
jle 0x4ba051
mov edx, dword [esp + 0x30]
mov ecx, edx
sub ecx, eax
cmp ecx, dword [esp + 0x2c]
jl 0x4ba051
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x38]
fld dword [eax + edx*4]
fsub dword [eax + ecx*4]
fcomp qword [0x556020]
fnstsw ax
test ah, 0x41
je 0x4ba051
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx + 0x2c8]
dec ebx
test ebx, ebx
jg 0x4b9f9a
mov dword [esp + 0x1c], 0
jmp 0x4ba031
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
lea edi, [esi + 4]
push edi
call eax
cmp ebx, eax
jl 0x4b9fb8
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
push edi
call edx
mov dword [esp + 0x1c], eax
jmp 0x4ba031
lea edi, [ebx - 1]
call fcn.0049d7d0
test al, al
je 0x4b9fca
mov dword [esp + 0x1c], edi
jmp 0x4ba031
mov eax, dword [esi + 0x1ec]
test eax, eax
je 0x4ba02d
cmp eax, 0xfde9
jne 0x4ba083
cmp ebx, dword [esi + 0x1c]
jge 0x4b9fec
mov eax, dword [esi + 0x10]
mov al, byte [ebx + eax]
jmp 0x4ba000
cmp ebx, dword [esi + 0x18]
jl 0x4b9ff5
xor al, al
jmp 0x4ba000
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x10]
add ecx, ebx
mov al, byte [ecx + edx]
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4ba02d
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
mov edi, esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebx
call fcn.0049d8f0
test al, al
je 0x4ba02d
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, edx
sub ecx, dword [esp + 0x70]
sub eax, edx
add ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
test edx, edx
jg 0x4b9f4a
mov edx, dword [esp + 0x20]
test edx, edx
jge 0x4ba05f
xor edx, edx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x30]
mov eax, ecx
sub eax, edx
mov edx, dword [esp + 0x64]
inc edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], eax
test edx, edx
jg 0x4ba170
xor eax, eax
jmp 0x4ba188
mov edi, dword [esi + 4]
mov edx, dword [edi + 0x14]
lea ebp, [esi + 4]
push ebx
push ebp
call edx
push eax
mov eax, dword [edi + 0x18]
push ebp
call eax
mov dword [esp + 0x20], eax
cmp ebx, eax
je 0x4ba02d
mov ebp, ebx
jle 0x4ba02d
lea edi, [ebx - 1]
cmp edi, dword [esi + 0x1c]
jge 0x4ba0be
test edi, edi
jge 0x4ba0b6
mov byte [esp + 0x24], 0
jmp 0x4ba0d9
mov ecx, dword [esi + 0x10]
mov dl, byte [edi + ecx]
jmp 0x4ba0d5
cmp edi, dword [esi + 0x18]
jl 0x4ba0ca
mov byte [esp + 0x24], 0
jmp 0x4ba0d9
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x10]
add eax, edi
mov dl, byte [eax + ecx]
mov byte [esp + 0x24], dl
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 4]
lea eax, [esi + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
test al, al
je 0x4ba0f6
dec ebp
dec edi
cmp ebp, dword [esp + 0x20]
jg 0x4ba0a6
cmp ebp, ebx
jge 0x4ba02d
mov edi, edi
cmp ebp, dword [esi + 0x1c]
jge 0x4ba11c
test ebp, ebp
jge 0x4ba110
mov byte [esp + 0x28], 0
jmp 0x4ba135
mov ecx, dword [esi + 0x10]
mov dl, byte [ecx + ebp]
mov byte [esp + 0x28], dl
jmp 0x4ba135
cmp ebp, dword [esi + 0x18]
jl 0x4ba128
mov byte [esp + 0x28], 0
jmp 0x4ba135
mov eax, dword [esi + 0x20]
add eax, dword [esi + 0x10]
mov cl, byte [eax + ebp]
mov byte [esp + 0x28], cl
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 4]
mov edx, dword [edx + 0x48]
lea eax, [esi + 4]
push ecx
push eax
call edx
xor ecx, ecx
test al, al
setne cl
inc ecx
mov eax, ecx
add eax, ebp
cmp eax, ebx
je 0x4ba02d
jg 0x4ba167
mov ebp, eax
cmp ebp, ebx
jl 0x4ba100
jmp 0x4ba02d
mov dword [esp + 0x1c], ebp
jmp 0x4ba031
mov esi, dword [esp + 0x60]
cmp edx, dword [esi + 0x4c]
jge 0x4ba185
mov eax, dword [esi + 4]
test eax, eax
je 0x4ba185
mov eax, dword [eax + edx*4]
jmp 0x4ba188
mov eax, dword [esi + 0x18]
cmp ecx, eax
jge 0x4ba38f
mov edx, dword [esp + 0x60]
cmp ecx, dword [edx + 0x18]
jg 0x4ba38f
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
mov esi, dword [eax + 0x2c8]
mov dword [esp + 0x1c], ebx
inc ebx
test ebx, ebx
jg 0x4ba1be
mov dword [esp + 0x18], 0
jmp 0x4ba1ed
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 8]
lea edi, [esi + 4]
push edi
call edx
cmp ebx, eax
jl 0x4ba1dc
mov eax, dword [edi]
mov ecx, dword [eax + 8]
push edi
call ecx
mov dword [esp + 0x18], eax
jmp 0x4ba1ed
lea edi, [ebx - 1]
call fcn.0049d7d0
test al, al
je 0x4ba230
inc ebx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x38]
mov ecx, edx
sub ecx, dword [esp + 0x70]
add ecx, dword [esp + 0x6c]
fld dword [eax + ecx*4]
mov esi, ecx
sub esi, edx
add esi, dword [esp + 0x1c]
fsub dword [eax + esi*4]
fcomp qword [0x556020]
fnstsw ax
test ah, 0x41
je 0x4ba38f
mov edx, dword [esp + 0x34]
mov eax, ecx
sub eax, dword [esp + 0x20]
jmp 0x4ba070
mov eax, dword [esi + 0x1ec]
test eax, eax
je 0x4ba1e9
cmp eax, 0xfde9
jne 0x4ba29a
cmp ebx, dword [esi + 0x1c]
jge 0x4ba24e
mov edx, dword [esi + 0x10]
mov al, byte [ebx + edx]
jmp 0x4ba260
cmp ebx, dword [esi + 0x18]
jl 0x4ba257
xor al, al
jmp 0x4ba260
mov eax, dword [esi + 0x20]
add eax, dword [esi + 0x10]
mov al, byte [eax + ebx]
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4ba1e9
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x1c]
push edx
push ebx
mov edi, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], ebx
call fcn.0049d8f0
test al, al
je 0x4ba1e9
mov ebx, dword [esp + 0x30]
jmp 0x4ba1e9
mov edi, dword [esi + 4]
mov eax, dword [edi + 0x14]
lea ebp, [esi + 4]
push ebx
push ebp
call eax
mov ecx, dword [edi + 0x18]
push eax
push ebp
call ecx
mov dword [esp + 0x30], eax
cmp ebx, eax
je 0x4ba1e9
mov ebp, ebx
jle 0x4ba1e9
lea edi, [ebx - 1]
cmp edi, dword [esi + 0x1c]
jge 0x4ba2e1
test edi, edi
jge 0x4ba2d5
mov byte [esp + 0x64], 0
jmp 0x4ba2fa
mov edx, dword [esi + 0x10]
mov al, byte [edi + edx]
mov byte [esp + 0x64], al
jmp 0x4ba2fa
cmp edi, dword [esi + 0x18]
jl 0x4ba2ed
mov byte [esp + 0x64], 0
jmp 0x4ba2fa
mov ecx, dword [esi + 0x20]
add ecx, dword [esi + 0x10]
mov dl, byte [ecx + edi]
mov byte [esp + 0x64], dl
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 4]
lea eax, [esi + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
test al, al
je 0x4ba317
dec ebp
dec edi
cmp ebp, dword [esp + 0x30]
jg 0x4ba2c5
cmp ebp, ebx
jge 0x4ba1e9
nop
cmp ebp, dword [esi + 0x1c]
jge 0x4ba338
test ebp, ebp
jge 0x4ba330
mov byte [esp + 0x28], 0
jmp 0x4ba353
mov ecx, dword [esi + 0x10]
mov dl, byte [ecx + ebp]
jmp 0x4ba34f
cmp ebp, dword [esi + 0x18]
jl 0x4ba344
mov byte [esp + 0x28], 0
jmp 0x4ba353
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x10]
add eax, ebp
mov dl, byte [eax + ecx]
mov byte [esp + 0x28], dl
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 4]
lea eax, [esi + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
xor ecx, ecx
test al, al
setne cl
inc ecx
lea eax, [ecx + ebp]
cmp eax, ebx
je 0x4ba1e9
jg 0x4ba384
mov ebp, eax
cmp ebp, ebx
jl 0x4ba320
jmp 0x4ba1e9
add ecx, ebp
mov dword [esp + 0x18], ecx
jmp 0x4ba1ed
mov ebp, dword [esp + 0x60]
fild dword [esp + 0x68]
mov eax, dword [ebp + 0x38]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + ecx*4]
mov esi, dword [esp + 0x24]
fsub dword [eax + edx*4]
add esi, ecx
fld dword [esp + 0x60]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x78]
fld dword [eax + esi*4]
fsub dword [eax + edx*4]
faddp st(1)
fstp dword [esp + 0x80]
fldz
fcomp dword [ebp + 0x50]
fnstsw ax
test ah, 0x44
jnp 0x4ba402
test edx, edx
je 0x4ba402
fld dword [ebp + 0x50]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fld st(0)
fadd dword [esp + 0x78]
fstp dword [esp + 0x78]
fadd dword [esp + 0x80]
fstp dword [esp + 0x80]
mov edx, dword [ebp + 0x34]
movzx ebx, byte [edx + ecx]
mov esi, dword [esp + 0x5c]
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4ba42d
call fcn.00501daa
mov eax, dword [esi + 0x44]
lea edi, [ebx + ebx*8]
add edi, edi
add edi, edi
add edi, edi
xor ecx, ecx
add eax, edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], vtable.FontAlias.0
mov edx, dword [eax + 0x44]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4ba474
call fcn.00501daa
mov eax, dword [esp + 0x74]
fild dword [esi + 0x664]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x44]
mov eax, dword [edi + eax + 0x30]
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [ebp + 0x30]
add eax, dword [esp + 0x2c]
push eax
mov eax, dword [esi + 0x664]
test eax, eax
jge 0x4ba4aa
fadd dword [0x556040]
fadd dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edx, dword [edx + 0x54]
push ecx
fstp dword [esp + 0x74]
lea eax, [esp + 0x4c]
fld dword [esp + 0x74]
fstp dword [esp]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [esp + 0xa4]
mov dword [eax + 4], esi
mov esi, dword [esp + 0xa8]
mov dword [eax + 8], esi
mov esi, dword [esp + 0xac]
mov dword [eax + 0xc], esi
call edx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret