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

Disassembly:
push 0xffffffffffffffff
push 0x482dac
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4bb27c]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov ebp, ecx
xor esi, esi
mov dword [esp + 0x24], esi
cmp dword [ebp + 0x24], esi
je 0x445d55
push str.fonts
lea ecx, [esp + 0x4c]
call fcn.00403600
mov ecx, dword [ebp + 0x24]
lea eax, [esp + 0x48]
push eax
push ecx
mov dword [esp + 0x88], esi
call fcn.0042d5b0
mov edi, eax
add esp, 8
lea ecx, [esp + 0x48]
mov dword [esp + 0x14], edi
mov dword [esp + 0x80], 0xffffffff
call fcn.00405c70
cmp edi, esi
je 0x445d55
mov eax, dword [esp + 0x88]
cmp eax, esi
je 0x4458bf
mov edx, dword [ebp + 0x6c]
mov ecx, dword [eax + 4]
mov dword [eax + 4], edx
mov dword [ebp + 0x6c], ecx
mov edx, dword [ebp + 0x70]
mov ecx, dword [eax + 8]
mov dword [eax + 8], edx
mov dword [ebp + 0x70], ecx
mov edx, dword [ebp + 0x74]
mov ecx, dword [eax + 0xc]
mov dword [eax + 0xc], edx
mov dword [ebp + 0x74], ecx
mov eax, dword [ebp + 0x6c]
cmp eax, esi
lea ebx, [ebp + 0x68]
mov dword [esp + 0x2c], ebx
jne 0x4458d1
xor edi, edi
jmp 0x4458d9
mov edi, dword [ebx + 8]
sub edi, eax
sar edi, 2
test edi, edi
jle 0x44590e
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4458f0
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x4458f5
call fcn.00465ea2
mov eax, dword [ebx + 4]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x445907
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add esi, 1
cmp esi, edi
jl 0x4458dd
mov edi, dword [ebx + 8]
cmp dword [ebx + 4], edi
jbe 0x44591b
call fcn.00465ea2
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x445928
call fcn.00465ea2
cmp esi, edi
je 0x445955
mov eax, dword [ebx + 8]
sub eax, edi
sar eax, 2
test eax, eax
lea ecx, [eax*4]
lea ebx, [ecx + esi]
jle 0x44594e
push ecx
push edi
push ecx
push esi
call fcn.004660b1
add esp, 0x10
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], ebx
mov esi, dword [ebp + 0x60]
cmp dword [ebp + 0x5c], esi
lea ebx, [ebp + 0x58]
mov dword [esp + 0x3c], ebx
jbe 0x445969
call fcn.00465ea2
mov edi, dword [ebx + 4]
cmp edi, dword [ebx + 8]
jbe 0x445976
call fcn.00465ea2
cmp edi, esi
je 0x4459a0
mov edx, dword [ebx + 8]
push edi
push edx
push esi
call fcn.004021a0
mov ecx, dword [esp + 0x94]
push ecx
mov esi, eax
mov eax, dword [ebx + 8]
push ebx
push eax
push esi
call fcn.00402240
add esp, 0x1c
mov dword [ebx + 8], esi
mov eax, dword [0x4ba6a8]
mov edx, dword [eax + 0x574]
add eax, 0x574
mov dword [esp + 0x44], eax
mov eax, dword [edx - 0xc]
test eax, eax
jne 0x4459c1
mov dword [esp + 0x30], eax
jmp 0x4459f7
push str.fontadjustments
lea ecx, [esp + 0x5c]
call fcn.00403600
mov ecx, dword [ebp + 0x24]
lea eax, [esp + 0x58]
push eax
push ecx
mov dword [esp + 0x88], 2
mov dword [esp + 0x2c], 1
call fcn.0042d5b0
add esp, 8
mov dword [esp + 0x30], eax
test byte [esp + 0x24], 1
mov dword [esp + 0x80], 0xffffffff
je 0x445a12
lea ecx, [esp + 0x58]
call fcn.00405c70
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x10]
xor ebp, ebp
cmp eax, ebp
jne 0x445a25
mov dword [esp + 0x24], ebp
jmp 0x445a31
mov ecx, dword [ebx + 0x14]
sub ecx, eax
sar ecx, 2
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
jle 0x445d55
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x445a52
mov eax, dword [ebx + 0x14]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x445a57
call fcn.00465ea2
mov edx, dword [ebx + 0x10]
mov esi, dword [edx + ebp*4]
mov eax, dword [esi]
mov ecx, str.font
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x445a8a
test dx, dx
je 0x445a86
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x445a8a
add eax, 4
add ecx, 4
test dx, dx
jne 0x445a64
xor eax, eax
jmp 0x445a8f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
jne 0x445d44
push 0x48df1c
mov ecx, esi
call fcn.0042e9f0
mov edi, eax
test edi, edi
je 0x445d44
push str.face
mov ecx, esi
call fcn.0042e9f0
test eax, eax
mov dword [esp + 0x34], eax
je 0x445d44
push str.size
mov ecx, esi
call fcn.0042e9f0
mov ebx, eax
test ebx, ebx
je 0x445d40
push 0xc
call fcn.00465f73
add esp, 4
mov dword [esp + 0x88], eax
test eax, eax
mov dword [esp + 0x80], 3
je 0x445b0d
mov ecx, eax
call fcn.00479c10
mov dword [esp + 0x1c], eax
jmp 0x445b15
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
or ebp, 0xffffffff
push edi
lea ecx, [esp + 0x2c]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x8c], eax
call fcn.004031f0
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x84], 4
call fcn.00405ad0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov dword [esp + 0x80], ebp
lea edx, [eax + 0xc]
lock xadd dword [edx], ebp
dec ebp
test ebp, ebp
jg 0x445b71
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x30]
call fcn.004367c0
mov eax, str.bold
mov ecx, esi
xor ebp, ebp
call fcn.00443a60
test al, al
je 0x445b99
mov ebp, 1
mov eax, str.italic
mov ecx, esi
call fcn.00443a60
test al, al
je 0x445bac
or ebp, 2
mov eax, str.underline
mov ecx, esi
call fcn.00443a60
test al, al
je 0x445bbf
or ebp, 4
lea edx, [esp + 0x40]
push edx
push 0x48faf8
push ebx
call fcn.0046a43f
add esp, 0xc
cmp eax, 1
jne 0x445bdd
fld dword [esp + 0x40]
jmp 0x445bdf
fldz
mov esi, dword [esp + 0x30]
fstp dword [esp + 0x88]
test esi, esi
je 0x445ccc
mov eax, dword [0x4be0cc]
mov edx, dword [eax + 0xc]
mov ecx, 0x4be0cc
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
push edi
push eax
lea ecx, [esp + 0x20]
push str.fontadjustment_lang__s___id__s__
push ecx
mov dword [esp + 0x90], 5
call fcn.004035c0
add esp, 0x10
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x6c]
call fcn.0041d3a0
lea eax, [esp + 0x68]
push eax
push esi
mov byte [esp + 0x88], 6
call fcn.0042d5b0
add esp, 8
lea ecx, [esp + 0x68]
mov esi, eax
mov byte [esp + 0x80], 5
call fcn.00405c70
test esi, esi
je 0x445ca1
push str.offset
mov ecx, esi
call fcn.0042e9f0
test eax, eax
je 0x445c8d
mov ecx, eax
call fcn.00443c20
fadd dword [esp + 0x88]
fstp dword [esp + 0x88]
push str.face
mov ecx, esi
call fcn.0042e9f0
test eax, eax
je 0x445ca1
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x80], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x445ccc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x3c]
call fcn.004031f0
mov eax, dword [0x4ba6a8]
fld dword [eax + 0x10]
push ebp
fmul dword [esp + 0x8c]
lea edx, [esp + 0x3c]
push 0
push edx
fadd qword [0x48eae8]
mov dword [esp + 0x8c], 7
call fcn.00467680
mov ecx, dword [esp + 0x28]
push eax
call fcn.00479dc0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov dword [esp + 0x80], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x445d3c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
add ebp, 1
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x20], ebp
jl 0x445a3f
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret 4