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

Disassembly:
sub esp, 0x78
push ebp
push esi
mov esi, ecx
xor ebp, ebp
cmp dword [esi + 0x40], ebp
jne 0x498564
push ebx
push edi
push str.cmap
call fcn.00494460
xor ecx, ecx
cmp eax, ebp
setl cl
push str.name
mov dword [esp + 0x88], eax
mov dword [esp + 0x34], ecx
mov ecx, esi
call fcn.00494460
xor edx, edx
test eax, eax
sets dl
push str.post
mov ecx, esi
mov dword [esp + 0x40], edx
call fcn.00494460
xor ecx, ecx
test eax, eax
sets cl
push str.OS_2
mov dword [esp + 0x44], ecx
mov ecx, esi
call fcn.00494460
xor edx, edx
test eax, eax
mov eax, dword [esi + 0x24]
sets dl
inc eax
push 0x10
push eax
mov dword [esp + 0x4c], edx
call fcn.004a30a0
add esp, 8
push str.loca
mov ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebp
call fcn.00494460
mov edx, dword [esi + 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 8]
mov dword [esp + 0x24], 1
cmp dword [esi + 0x24], ebp
jl 0x49727b
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
mov edi, eax
add ebx, 4
lea esp, [esp]
cmp dword [esi + 0x28], 0
je 0x497225
lea eax, [esp + 0x24]
push eax
push edi
mov ecx, esi
call fcn.004a1a20
jmp 0x497238
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x24]
push ecx
push edx
mov ecx, esi
call fcn.004a19e0
add eax, eax
mov dword [ebx], eax
test ebp, ebp
jle 0x497267
mov edx, dword [ebx - 0x10]
mov ecx, eax
cmp ecx, edx
jge 0x49724f
mov dword [esp + 0x1c], 1
mov eax, ecx
sub eax, edx
test eax, eax
jle 0x497267
cmp eax, 0xc
jge 0x497267
mov dword [ebx - 0x10], ecx
mov dword [esp + 0x1c], 1
add dword [esp + 0x5c], 2
mov dword [ebx - 4], ebp
inc ebp
add edi, 4
add ebx, 0x10
cmp ebp, dword [esi + 0x24]
jle 0x497210
mov edi, dword [esi + 0x18]
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x60], ebx
cmp edi, ebx
jle 0x497304
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x70], edi
lea edx, [ebx + 1]
cmp dword [ecx + 0x10], 0
mov eax, dword [ecx]
jne 0x4972d6
add ebx, edx
cmp eax, 0x636d6170
jne 0x4972af
mov dword [esp + 0x30], edx
jmp 0x4972f1
cmp eax, 0x6e616d65
jne 0x4972bc
mov dword [esp + 0x3c], edx
jmp 0x4972f1
cmp eax, 0x706f7374
jne 0x4972c9
mov dword [esp + 0x40], edx
jmp 0x4972f1
cmp eax, 0x4f532f32
jne 0x4972f1
mov dword [esp + 0x44], edx
jmp 0x4972f1
test eax, 0xe0000000
je 0x4972ef
test eax, 0xe00000
je 0x4972ef
test eax, 0xe000
je 0x4972ef
test al, 0xe0
jne 0x4972f1
add ebp, edx
add ecx, 0x14
sub dword [esp + 0x70], edx
jne 0x497298
mov dword [esp + 0x60], ebx
mov dword [esp + 0x18], ebp
xor ebx, ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x78], ebx
cmp dword [esp + 0x30], ebx
jne 0x497382
mov edx, dword [esi + 0x20]
test edx, edx
jne 0x497327
mov dword [esp + 0x64], 1
jmp 0x497382
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + 0xc]
add eax, dword [ecx + 8]
cmp edx, 1
jle 0x49735d
mov ebx, 0x14
add ecx, 0x1c
lea ebp, [edx - 1]
mov edx, dword [ecx + 4]
add edx, dword [ecx]
cmp edx, eax
jle 0x497354
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + ebx + 0xc]
add eax, dword [edx + ebx + 8]
add ebx, 0x14
add ecx, 0x14
dec ebp
jne 0x497340
mov ecx, dword [esp + 0x84]
mov edx, dword [esi + 0x14]
lea ecx, [ecx + ecx*4]
sub eax, dword [edx + ecx*4 + 8]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x78], eax
cmp eax, dword [ecx + 0x10]
jle 0x497382
mov dword [esp + 0x68], 1
movsx eax, byte [0x54e9f1]
movsx ecx, byte [str.hhea]
movsx edx, byte [0x54e9f2]
and eax, 0xff
shl ecx, 8
or eax, ecx
movsx ecx, byte [0x54e9f3]
shl eax, 8
and edx, 0xff
or eax, edx
and ecx, 0xff
shl eax, 8
or eax, ecx
xor ecx, ecx
test edi, edi
jle 0x4973d3
mov edx, dword [esi + 0x14]
cmp dword [edx], eax
je 0x4973d6
inc ecx
add edx, 0x14
cmp ecx, edi
jl 0x4973c7
or ecx, 0xffffffff
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x24]
push edx
mov edx, dword [ecx + eax*4 + 8]
add edx, 0x22
push edx
mov ecx, esi
call fcn.004a19e0
mov ecx, dword [esi + 0x24]
xor edx, edx
cmp eax, ecx
setl dl
cmp dword [esp + 0x30], 0
mov dword [esp + 0x74], eax
mov eax, edx
mov dword [esp + 0x48], eax
jne 0x49747b
cmp dword [esp + 0x3c], 0
jne 0x49747b
cmp dword [esp + 0x40], 0
jne 0x49747b
cmp dword [esp + 0x44], 0
jne 0x49747b
cmp dword [esp + 0x1c], 0
jne 0x49747b
cmp dword [esp + 0x64], 0
jne 0x49747b
cmp dword [esp + 0x68], 0
jne 0x49747b
test eax, eax
jne 0x49747b
cmp dword [esp + 0x60], edx
jne 0x49747b
cmp dword [esp + 0x18], edx
jne 0x49747b
cmp dword [esp + 0x94], edx
jne 0x49747b
cmp dword [esp + 0x98], edx
jne 0x49747b
cmp dword [esi + 0x48], edx
jne 0x49747b
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x90]
push eax
push ecx
push edx
call dword [esp + 0x98]
add esp, 0xc
jmp 0x498555
cmp dword [esp + 0x1c], 0
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x7c], 0
je 0x497542
lea eax, [ecx + 1]
shl eax, 4
add eax, ebp
mov edx, eax
mov byte [esp + 0x84], 0
mov ecx, dword [esp + 0x84]
push ecx
sub edx, ebp
sar edx, 4
push edx
push eax
push ebp
call fcn.00496e20
xor ecx, ecx
add esp, 0x10
cmp dword [esi + 0x24], ecx
jle 0x4974d7
lea eax, [ebp + 4]
mov edx, dword [eax + 0x10]
sub edx, dword [eax]
inc ecx
mov dword [eax + 8], edx
add eax, 0x10
cmp ecx, dword [esi + 0x24]
jl 0x4974c6
mov eax, dword [esi + 0x24]
add eax, eax
xor ebx, ebx
mov dword [ebp + eax*8 + 0xc], ebx
mov eax, dword [esi + 0x24]
inc eax
shl eax, 4
add eax, ebp
mov edx, eax
mov byte [esp + 0x84], bl
mov ecx, dword [esp + 0x84]
push ecx
sub edx, ebp
sar edx, 4
push edx
push eax
push ebp
call fcn.00496f10
mov eax, dword [esi + 0x24]
add eax, eax
mov dword [ebp + eax*8 + 0xc], ebx
add esp, 0x10
xor eax, eax
cmp dword [esi + 0x24], ebx
jl 0x49753e
lea ecx, [ebp + 0xc]
nop
mov dword [ecx - 4], eax
add eax, dword [ecx]
mov edx, eax
and edx, 3
je 0x497535
mov edi, 4
sub edi, edx
add eax, edi
inc ebx
add ecx, 0x10
cmp ebx, dword [esi + 0x24]
jle 0x497520
mov dword [esp + 0x7c], eax
xor ebx, ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x38], ebx
cmp dword [esp + 0x1c], ebx
je 0x49768b
mov edx, dword [esi + 0x24]
cmp dword [esi + 0x28], ebx
je 0x4975a5
xor ebp, ebp
xor edi, edi
test edx, edx
js 0x4975cf
lea ecx, [edx + 1]
cmp ecx, 2
jl 0x49758b
mov eax, dword [esp + 0x20]
lea ecx, [edx + 1]
add eax, 0x18
shr ecx, 1
lea edi, [ecx + ecx]
lea ecx, [ecx]
add ebx, dword [eax - 0x10]
add ebp, dword [eax]
add eax, 0x20
dec ecx
jne 0x497580
cmp edi, edx
jg 0x49759d
mov eax, dword [esp + 0x20]
add edi, edi
mov ecx, dword [eax + edi*8 + 8]
mov dword [esp + 0x38], ecx
add ebx, ebp
add dword [esp + 0x38], ebx
jmp 0x4975cf
xor eax, eax
test edx, edx
js 0x4975cf
lea ecx, [ebp + 0x18]
mov edi, edi
mov edi, dword [ecx - 0x10]
shl edi, 0x10
add ebx, edi
lea edi, [eax + 1]
cmp edi, edx
jg 0x4975c1
add ebx, dword [ecx]
add eax, 2
add ecx, 0x20
cmp eax, edx
jle 0x4975b0
mov dword [esp + 0x38], ebx
movsx eax, byte [0x54ea01]
movsx ecx, byte [str.glyf]
mov ebx, dword [esi + 0x18]
shl ecx, 8
and eax, 0xff
or eax, ecx
movsx ecx, byte [0x54ea02]
and ecx, 0xff
shl eax, 8
or eax, ecx
movsx ecx, byte [0x54ea03]
and ecx, 0xff
shl eax, 8
or eax, ecx
xor ecx, ecx
test ebx, ebx
jle 0x497624
mov ebp, dword [esi + 0x14]
cmp dword [ebp], eax
je 0x497627
inc ecx
add ebp, 0x14
cmp ecx, ebx
jl 0x497617
or ecx, 0xffffffff
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + eax*4 + 8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], 0
test edx, edx
jle 0x49768b
mov edi, dword [esp + 0x20]
add edi, 4
mov ebx, dword [edi + 8]
test ebx, ebx
jle 0x49767a
mov ebp, dword [edi]
mov edx, dword [esp + 0x2c]
push ebx
add edx, ebp
push edx
mov ecx, esi
call fcn.004a1b10
test eax, eax
je 0x49767a
mov eax, dword [esi + 8]
add eax, ebp
add eax, dword [esp + 0x2c]
push ebx
push eax
mov ecx, esi
call fcn.00494260
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
inc eax
add edi, 0x10
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x24]
jl 0x497648
mov eax, dword [esp + 0x94]
xor ecx, ecx
cmp eax, ecx
je 0x4977ae
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4976a0
sub eax, edx
mov edi, eax
lea ebx, [edi + edi*2]
lea ebx, [ebx + ebx + 0x47]
and ebx, 0xfffffffc
push ebx
mov dword [esp + 0x74], ebx
call fcn.004a3010
push ebx
mov ebp, eax
push 0
push ebp
mov dword [esp + 0x60], ebp
call fcn.00512510
xor ebx, ebx
add esp, 0x10
mov dword [ebp], 0x4000000
mov word [ebp + 4], 0x3600
mov dword [esp + 0x5c], ebx
xor ecx, ecx
lea edx, [ecx + ecx*2]
lea eax, [ebp + edx*4]
lea edx, [ecx + 1]
inc ecx
mov dword [eax + 6], 0x1000300
mov word [eax + 0xa], 0x904
mov byte [eax + 0xc], 0
mov byte [eax + 0xd], dl
cmp ecx, 2
jne 0x49770e
xor edx, edx
jmp 0x497714
lea edx, [edi + edi]
sar edx, 8
mov byte [eax + 0xe], dl
cmp ecx, 2
jne 0x497721
lea edx, [ecx + 0xc]
jmp 0x49772a
lea edx, [edi + edi]
and edx, 0xff
mov byte [eax + 0xf], dl
mov edx, ebx
sar edx, 8
mov byte [eax + 0x10], dl
mov byte [eax + 0x11], bl
cmp ecx, 2
jne 0x49776a
mov eax, dword [0x54eaf0]
mov dword [ebx + ebp + 0x36], eax
mov edx, dword [0x54eaf4]
mov dword [ebx + ebp + 0x3a], edx
mov eax, dword [0x54eaf8]
mov dword [ebx + ebp + 0x3e], eax
mov dx, word [0x54eafc]
mov word [ebx + ebp + 0x42], dx
add ebx, 0xe
jmp 0x49779f
xor edx, edx
test edi, edi
jle 0x49779c
lea eax, [ebx + ebp + 0x37]
jmp 0x497780
mov ebx, dword [esp + 0x94]
mov byte [eax - 1], 0
mov bl, byte [edx + ebx]
mov byte [eax], bl
inc edx
add eax, 2
cmp edx, edi
jl 0x497780
mov ebx, dword [esp + 0x5c]
lea ebx, [ebx + edi*2]
mov dword [esp + 0x5c], ebx
cmp ecx, 4
jl 0x4976e6
jmp 0x4977b6
mov dword [esp + 0x70], ecx
mov dword [esp + 0x50], ecx
mov edi, dword [esp + 0x98]
xor ebp, ebp
cmp edi, ebp
je 0x49785c
push 0x22c
mov dword [esp + 0x58], 0x22c
call fcn.004a3010
mov ebp, eax
add esp, 4
xor ebx, ebx
mov dword [esp + 0x5c], ebp
mov dword [ebp], 0x1000000
mov dword [ebp + 4], 0x1000300
mov dword [ebp + 8], 0xc000000
mov dword [ebp + 0xc], 0x20020400
mov dword [ebp + 0x10], 0x4000000
mov dword [ebp + 0x14], 0x1000400
mov dword [ebp + 0x18], 0xff000000
mov dword [ebp + 0x1c], 0xffff
mov dword [ebp + 0x20], 0xffff0000
mov dword [ebp + 0x24], 0x1000000
mov dword [ebp + 0x28], 0x400
xor eax, eax
lea ecx, [ebp + 0x2d]
cmp dword [edi + eax*4], ebx
jge 0x497841
mov word [ecx - 1], bx
jmp 0x49784f
mov edx, dword [edi + eax*4]
sar edx, 8
mov byte [ecx - 1], dl
mov dl, byte [edi + eax*4]
mov byte [ecx], dl
inc eax
add ecx, 2
cmp eax, 0x100
jl 0x497836
jmp 0x497866
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], ebp
xor ebx, ebx
cmp dword [esp + 0x48], ebx
je 0x497a5f
movsx eax, byte [0x54e9f1]
movsx ecx, byte [str.hhea]
movsx edx, byte [0x54e9f2]
and eax, 0xff
shl ecx, 8
or eax, ecx
movsx ecx, byte [0x54e9f3]
shl eax, 8
and edx, 0xff
or eax, edx
mov edx, dword [esi + 0x18]
and ecx, 0xff
shl eax, 8
or eax, ecx
xor ecx, ecx
cmp edx, ebx
jle 0x4978c4
mov edi, dword [esi + 0x14]
cmp dword [edi], eax
je 0x4978c7
inc ecx
add edi, 0x14
cmp ecx, edx
jl 0x4978b8
or ecx, 0xffffffff
mov eax, dword [esi + 0x14]
lea edx, [ecx + ecx*4]
mov ebx, dword [eax + edx*4 + 8]
push 0x24
mov dword [esp + 0x84], 0x24
call fcn.004a3010
mov edi, eax
add esp, 4
mov dword [esp + 0x4c], eax
sub edi, ebx
mov dword [esp + 0x34], 0x24
lea ecx, [esp + 0x24]
push ecx
push ebx
mov ecx, esi
call fcn.004a1960
mov byte [edi + ebx], al
inc ebx
dec dword [esp + 0x34]
jne 0x4978f6
mov edx, dword [esi + 0x24]
mov eax, dword [esp + 0x4c]
sar edx, 8
mov byte [eax + 0x22], dl
mov cl, byte [esi + 0x24]
mov byte [eax + 0x23], cl
movsx eax, byte [0x54e9e9]
movsx edx, byte [str.hmtx]
movsx ecx, byte [0x54e9ea]
and eax, 0xff
shl edx, 8
or eax, edx
movsx edx, byte [0x54e9eb]
shl eax, 8
and ecx, 0xff
or eax, ecx
and edx, 0xff
shl eax, 8
or eax, edx
mov edx, dword [esi + 0x18]
xor ecx, ecx
test edx, edx
jle 0x497974
mov edi, dword [esi + 0x14]
cmp dword [edi], eax
je 0x497977
inc ecx
add edi, 0x14
cmp ecx, edx
jl 0x497968
or ecx, 0xffffffff
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + 0x14]
mov ebx, dword [ecx + eax*4 + 8]
mov eax, dword [esi + 0x24]
add eax, eax
add eax, eax
push eax
mov dword [esp + 0x88], eax
call fcn.004a3010
mov dword [esp + 0x38], eax
xor eax, eax
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x74], eax
jle 0x497a06
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x34]
add edi, 2
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], eax
nop
lea edx, [esp + 0x24]
push edx
push ebx
mov ecx, esi
call fcn.004a19e0
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
push eax
lea ecx, [ebx + 2]
push ecx
mov ecx, esi
call fcn.004a19e0
mov ecx, dword [esp + 0x2c]
mov edx, ecx
mov byte [edi - 1], cl
mov ecx, eax
sar edx, 8
sar ecx, 8
mov byte [edi - 2], dl
mov byte [edi], cl
mov byte [edi + 1], al
add ebx, 4
add edi, 4
dec dword [esp + 0x74]
jne 0x4979c0
mov edx, dword [esp + 0x14]
cmp edx, dword [esi + 0x24]
jge 0x497a75
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
sar eax, 8
mov dword [esp + 0x74], eax
mov eax, edx
lea edi, [ecx + eax*4 + 2]
lea edx, [esp + 0x24]
push edx
push ebx
mov ecx, esi
call fcn.004a19e0
mov cl, byte [esp + 0x74]
mov dl, byte [esp + 0x2c]
mov byte [edi - 2], cl
mov ecx, eax
mov byte [edi + 1], al
mov eax, dword [esp + 0x14]
sar ecx, 8
mov byte [edi - 1], dl
mov byte [edi], cl
inc eax
add ebx, 2
add edi, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x24]
jl 0x497a24
jmp 0x497a75
mov dword [esp + 0x34], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ebx
xor ebx, ebx
xor edi, edi
cmp dword [esp + 0x44], edi
push 0x14
setne bl
xor edx, edx
cmp dword [esp + 0x44], edi
setne dl
xor eax, eax
add ebx, edx
cmp dword [esp + 0x40], edi
setne al
xor ecx, ecx
add ebx, eax
cmp dword [esp + 0x34], edi
setne cl
add ebx, ecx
sub ebx, dword [esp + 0x1c]
sub ebx, dword [esp + 0x64]
add ebx, dword [esi + 0x18]
push ebx
call fcn.004a30a0
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
cmp dword [esi + 0x18], edi
jle 0x497d07
mov dword [esp + 0x2c], edi
mov edi, eax
add edi, 4
mov eax, dword [esp + 0x2c]
add eax, dword [esi + 0x14]
cmp dword [eax + 0x10], 0
jle 0x497cf0
mov ecx, dword [eax]
test ecx, 0xe0000000
je 0x497cf0
test ecx, 0xe00000
je 0x497cf0
test ecx, 0xe000
je 0x497cf0
test cl, 0xe0
je 0x497cf0
mov dword [edi - 4], ecx
mov edx, dword [eax + 4]
mov dword [edi], edx
mov ecx, dword [eax + 8]
mov dword [edi + 4], ecx
mov edx, dword [eax + 0xc]
mov dword [edi + 8], edx
mov eax, dword [eax + 0x10]
mov dword [edi + 0xc], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x2c]
mov edx, dword [ecx + eax + 8]
mov dword [edi + 8], edx
mov ecx, dword [esi + 0x14]
mov edx, dword [eax + ecx + 0x10]
mov eax, dword [eax + ecx + 8]
push edx
push eax
mov ecx, esi
call fcn.004a1b10
test eax, eax
je 0x497b98
mov eax, dword [esi + 0x14]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax + edx + 0x10]
mov edx, dword [eax + edx + 8]
add edx, dword [esi + 8]
push ecx
push edx
mov ecx, esi
call fcn.00494260
mov ecx, dword [esp + 0x2c]
mov dword [edi], eax
mov eax, dword [esi + 0x14]
cmp dword [eax + ecx], 0x68656164
jne 0x497b98
mov eax, dword [eax + ecx + 8]
lea edx, [esp + 0x24]
push edx
add eax, 8
push eax
mov ecx, esi
call fcn.004a1a20
sub dword [edi], eax
mov eax, dword [edi - 4]
cmp eax, 0x636d6170
jne 0x497c3b
cmp dword [esp + 0x98], 0
je 0x497bbb
mov eax, dword [esp + 0x54]
push eax
push ebp
jmp 0x497cdd
cmp eax, 0x636d6170
jne 0x497c3b
cmp dword [esp + 0x64], 0
je 0x497c21
mov eax, 0x599621
mov edx, 3
xor ecx, ecx
sub edx, eax
mov dword [esp + 0x74], edx
nop
movzx edx, byte [eax - 1]
movzx ebp, byte [eax]
shl edx, 8
add edx, ebp
movzx ebp, byte [eax + 1]
shl edx, 8
add edx, ebp
movzx ebp, byte [eax + 2]
shl edx, 8
add ebp, ecx
lea ecx, [edx + ebp]
mov edx, dword [esp + 0x74]
add eax, 4
add edx, eax
cmp edx, 0x2c
jl 0x497be0
mov ebp, dword [esp + 0x5c]
mov dword [edi], ecx
mov dword [edi + 0xc], 0x2c
jmp 0x497ce9
cmp eax, 0x636d6170
jne 0x497c3b
cmp dword [esp + 0x68], 0
je 0x497c3b
mov eax, dword [esp + 0x78]
mov dword [edi + 0xc], eax
jmp 0x497ce9
cmp eax, 0x6c6f6361
jne 0x497c68
cmp dword [esp + 0x1c], 0
je 0x497c68
mov edx, dword [esi + 0x24]
mov eax, dword [esp + 0x38]
xor ecx, ecx
cmp dword [esi + 0x28], ecx
setne cl
inc edx
lea ecx, [ecx + ecx + 2]
imul ecx, edx
mov dword [edi + 0xc], ecx
jmp 0x497ce7
cmp eax, 0x676c7966
jne 0x497c85
cmp dword [esp + 0x1c], 0
je 0x497c85
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x6c]
mov dword [edi + 0xc], ecx
mov dword [edi], edx
jmp 0x497ce9
cmp eax, 0x6e616d65
jne 0x497ca5
cmp dword [esp + 0x94], 0
je 0x497ca5
mov eax, dword [esp + 0x70]
push eax
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x54]
push eax
jmp 0x497ce0
cmp eax, 0x68686561
jne 0x497cc2
cmp dword [esp + 0x48], 0
je 0x497cc2
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x4c]
push eax
push ecx
jmp 0x497cdd
cmp eax, 0x686d7478
jne 0x497ce9
cmp dword [esp + 0x48], 0
je 0x497ce9
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x34]
push eax
push edx
mov dword [edi + 0xc], eax
mov ecx, esi
call fcn.00494260
mov dword [edi], eax
inc dword [esp + 0x10]
add edi, 0x14
mov eax, dword [esp + 0x14]
add dword [esp + 0x2c], 0x14
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x18]
jl 0x497ad5
cmp dword [esp + 0x30], 0
je 0x497d9e
cmp dword [esp + 0x98], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4]
mov dword [esp + 0x14], edi
mov dword [edi], 0x636d6170
je 0x497d4d
mov edx, dword [esp + 0x54]
push edx
push ebp
mov ecx, esi
call fcn.00494260
mov dword [edi + 4], eax
mov eax, dword [esp + 0x54]
mov dword [edi + 0x10], eax
jmp 0x497d9a
mov eax, 0x599621
mov edx, 3
xor ecx, ecx
sub edx, eax
jmp 0x497d60
movzx edi, byte [eax - 1]
movzx ebp, byte [eax]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 1]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 2]
shl edi, 8
add ebp, ecx
add eax, 4
lea ecx, [edi + ebp]
lea edi, [eax + edx]
cmp edi, 0x2c
jl 0x497d60
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax + 0x10], 0x2c
inc dword [esp + 0x10]
cmp dword [esp + 0x3c], 0
je 0x497e30
cmp dword [esp + 0x94], 0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*4]
mov dword [esp + 0x14], edi
mov dword [edi], 0x6e616d65
je 0x497de4
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
push ebp
push eax
mov ecx, esi
call fcn.00494260
mov dword [edi + 4], eax
mov dword [edi + 0x10], ebp
jmp 0x497e2c
mov eax, 0x599619
mov edx, 3
xor ecx, ecx
sub edx, eax
movzx edi, byte [eax - 1]
movzx ebp, byte [eax]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 1]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 2]
shl edi, 8
add ebp, ecx
add eax, 4
lea ecx, [edi + ebp]
lea edi, [edx + eax]
cmp edi, 8
jl 0x497df2
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax + 0x10], 8
inc dword [esp + 0x10]
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0x10]
je 0x497ea5
mov eax, dword [esp + 0x18]
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
mov dword [esp + 0x14], eax
mov dword [eax], 0x706f7374
mov eax, 0x5995f9
mov edi, 3
xor ecx, ecx
sub edi, eax
mov dword [esp + 0x84], edi
movzx edi, byte [eax - 1]
movzx ebp, byte [eax]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 1]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 2]
shl edi, 8
add ebp, ecx
lea ecx, [edi + ebp]
mov edi, dword [esp + 0x84]
add eax, 4
add edi, eax
cmp edi, 0x20
jl 0x497e64
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax + 0x10], 0x20
inc edx
cmp dword [esp + 0x44], 0
je 0x497f24
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x18]
lea eax, [edx + ecx*4]
mov dword [esp + 0x14], eax
mov dword [eax], 0x4f532f32
mov eax, 0x5995a1
mov edx, 3
xor ecx, ecx
sub edx, eax
movzx edi, byte [eax - 1]
movzx ebp, byte [eax]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 1]
shl edi, 8
add edi, ebp
movzx ebp, byte [eax + 2]
shl edi, 8
add ebp, ecx
add eax, 4
lea ecx, [edi + ebp]
lea edi, [edx + eax]
cmp edi, 0x56
jl 0x497ed2
movzx eax, byte [0x5995f5]
movzx edx, byte [0x5995f4]
shl eax, 0x10
shl edx, 0x18
or eax, edx
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax + 0x10], 0x56
mov edi, dword [esp + 0x18]
lea eax, [ebx + ebx*4]
lea ebp, [edi + eax*4]
mov byte [esp + 0x84], 0
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, ebp
sub ecx, edi
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebp
push edi
call fcn.00497000
mov ebp, ebx
shl ebp, 4
add esp, 0x10
lea eax, [ebp + 0xc]
mov dword [esp + 0x70], eax
test ebx, ebx
jle 0x497f9d
lea ecx, [edi + 0x10]
mov dword [esp + 0x84], ebx
mov dword [ecx - 8], eax
add eax, dword [ecx]
mov edx, eax
and edx, 3
je 0x497f8d
mov edi, 4
sub edi, edx
add eax, edi
add ecx, 0x14
dec dword [esp + 0x84]
jne 0x497f78
mov eax, dword [esp + 0x70]
push eax
call fcn.004a3010
mov edi, eax
mov ecx, ebx
sar ecx, 8
add esp, 4
or edx, 0xffffffff
mov dword [esp + 0x6c], edi
mov dword [edi], 0x100
mov byte [edi + 4], cl
mov byte [edi + 5], bl
mov eax, ebx
test ebx, ebx
je 0x497fcb
inc edx
shr eax, 1
jne 0x497fc6
lea ecx, [edx + 4]
mov eax, 1
shl eax, cl
mov byte [edi + 9], dl
mov ecx, eax
shr ecx, 8
sub ebp, eax
mov byte [edi + 6], cl
mov byte [edi + 7], al
mov ecx, edx
mov eax, ebp
mov edx, eax
sar ecx, 8
shr edx, 8
mov byte [edi + 8], cl
mov byte [edi + 0xa], dl
mov byte [edi + 0xb], al
test ebx, ebx
jle 0x49808e
mov ecx, dword [esp + 0x18]
lea eax, [edi + 0xd]
add ecx, 8
mov edi, ebx
mov edi, edi
movzx edx, byte [ecx - 5]
mov byte [eax - 1], dl
movzx edx, byte [ecx - 6]
mov byte [eax], dl
mov edx, dword [ecx - 8]
shr edx, 8
mov byte [eax + 1], dl
movzx edx, byte [ecx - 8]
mov byte [eax + 2], dl
movzx edx, byte [ecx - 1]
mov byte [eax + 3], dl
movzx edx, byte [ecx - 2]
mov byte [eax + 4], dl
mov edx, dword [ecx - 4]
shr edx, 8
mov byte [eax + 5], dl
movzx edx, byte [ecx - 4]
mov byte [eax + 6], dl
movzx edx, byte [ecx + 3]
mov byte [eax + 7], dl
movzx edx, byte [ecx + 2]
mov byte [eax + 8], dl
mov edx, dword [ecx]
sar edx, 8
mov byte [eax + 9], dl
movzx edx, byte [ecx]
mov byte [eax + 0xa], dl
movzx edx, byte [ecx + 0xb]
mov byte [eax + 0xb], dl
movzx edx, byte [ecx + 0xa]
mov byte [eax + 0xc], dl
mov edx, dword [ecx + 8]
sar edx, 8
mov byte [eax + 0xd], dl
movzx edx, byte [ecx + 8]
mov byte [eax + 0xe], dl
add eax, 0x10
add ecx, 0x14
dec edi
jne 0x498010
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x8c]
push eax
push ecx
push edi
call ebp
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
add esp, 0xc
push edx
push eax
mov ecx, esi
call fcn.00494260
test ebx, ebx
jle 0x4980d8
mov ecx, dword [esp + 0x18]
add ecx, 4
mov edx, ebx
lea ebx, [ebx]
add eax, dword [ecx]
add ecx, 0x14
dec edx
jne 0x4980d0
mov ecx, 0xb1b0afba
sub ecx, eax
mov dword [esp + 0x80], ecx
test ebx, ebx
jle 0x498516
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], ebx
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0x10]
cmp eax, 0x68656164
jne 0x4981af
mov ebx, edx
mov eax, dword [ebx]
mov ecx, dword [ebx - 4]
push eax
push ecx
mov ecx, esi
call fcn.004a1b10
test eax, eax
je 0x49817e
mov edx, dword [esi + 8]
add edx, dword [ebx - 4]
push 8
push edx
push edi
call ebp
mov eax, dword [esp + 0x8c]
mov edx, eax
mov ecx, eax
shr ecx, 0x18
shr edx, 0x10
mov byte [esp + 0x64], cl
mov byte [esp + 0x65], dl
push 4
lea edx, [esp + 0x68]
mov ecx, eax
push edx
shr ecx, 8
push edi
mov byte [esp + 0x72], cl
mov byte [esp + 0x73], al
call ebp
mov eax, dword [ebx]
mov ecx, dword [esi + 8]
mov edx, dword [ebx - 4]
sub eax, 0xc
push eax
lea eax, [ecx + edx + 0xc]
push eax
push edi
call ebp
add esp, 0x24
jmp 0x4984e6
cmp dword [ebx], 0
mov dword [esp + 0x10], 0
jle 0x4984e6
nop
push 1
push 0x54eaec
push edi
call ebp
mov eax, dword [esp + 0x1c]
inc eax
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, dword [ebx]
jl 0x498190
jmp 0x4984e6
cmp eax, 0x636d6170
jne 0x4981fc
cmp dword [esp + 0x98], 0
je 0x4981d7
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [esp + 0x5c]
push edx
push eax
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x636d6170
jne 0x4981fc
cmp dword [esp + 0x30], 0
je 0x4981fc
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push edx
push 0x599620
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x6e616d65
jne 0x498249
cmp dword [esp + 0x94], 0
je 0x498224
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [esp + 0x50]
push ecx
push edx
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x6e616d65
jne 0x498249
cmp dword [esp + 0x3c], 0
je 0x498249
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ecx
push 0x599618
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x706f7374
jne 0x49826e
cmp dword [esp + 0x40], 0
je 0x49826e
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
push eax
push 0x5995f8
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x4f532f32
jne 0x498293
cmp dword [esp + 0x44], 0
je 0x498293
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push edx
push 0x5995a0
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x68686561
jne 0x4982b8
cmp dword [esp + 0x48], 0
je 0x4982b8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [esp + 0x4c]
push ecx
push edx
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x686d7478
jne 0x4982dd
cmp dword [esp + 0x48], 0
je 0x4982dd
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [esp + 0x34]
push ecx
push edx
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
cmp eax, 0x6c6f6361
jne 0x49836d
cmp dword [esp + 0x1c], 0
je 0x49836d
cmp dword [esi + 0x24], 0
mov dword [esp + 0x10], 0
jl 0x4984e6
mov ebx, dword [esp + 0x20]
add ebx, 8
lea esp, [esp]
cmp dword [esi + 0x28], 0
je 0x498339
movzx eax, byte [ebx + 3]
mov byte [esp + 0x28], al
mov cl, byte [ebx + 2]
mov byte [esp + 0x29], cl
mov edx, dword [ebx]
sar edx, 8
mov byte [esp + 0x2a], dl
movzx eax, byte [ebx]
mov byte [esp + 0x2b], al
push 4
jmp 0x49834c
mov edx, dword [ebx]
sar edx, 9
mov byte [esp + 0x28], dl
mov eax, dword [ebx]
sar eax, 1
mov byte [esp + 0x29], al
push 2
lea ecx, [esp + 0x2c]
push ecx
push edi
call ebp
mov eax, dword [esp + 0x1c]
inc eax
add esp, 0xc
add ebx, 0x10
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x24]
jle 0x498310
jmp 0x4984e6
cmp eax, 0x676c7966
jne 0x498497
cmp dword [esp + 0x1c], 0
je 0x498497
movsx eax, byte [0x54ea01]
movsx edx, byte [str.glyf]
movsx ecx, byte [0x54ea02]
and eax, 0xff
shl edx, 8
or eax, edx
movsx edx, byte [0x54ea03]
shl eax, 8
and ecx, 0xff
or eax, ecx
and edx, 0xff
shl eax, 8
or eax, edx
mov edx, dword [esi + 0x18]
xor ecx, ecx
test edx, edx
jle 0x4983dc
mov ebx, dword [esi + 0x14]
jmp 0x4983d0
cmp dword [ebx], eax
je 0x4983df
inc ecx
add ebx, 0x14
cmp ecx, edx
jl 0x4983d0
or ecx, 0xffffffff
cmp dword [esi + 0x24], 0
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + eax*4 + 8]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], 0
jle 0x4984e6
mov eax, dword [esp + 0x20]
add eax, 0xc
mov dword [esp + 0x38], eax
lea ebx, [ebx]
mov ecx, dword [esp + 0x38]
mov ebx, dword [ecx]
test ebx, ebx
jle 0x49847e
mov edx, ecx
mov eax, dword [edx - 8]
mov dword [esp + 0x7c], eax
add eax, dword [esp + 0x2c]
push ebx
push eax
mov ecx, esi
call fcn.004a1b10
test eax, eax
je 0x498449
mov edx, dword [esi + 8]
add edx, dword [esp + 0x7c]
push ebx
add edx, dword [esp + 0x30]
push edx
push edi
call ebp
add esp, 0xc
jmp 0x498460
test ebx, ebx
jle 0x498460
lea ecx, [ecx]
push 1
push 0x54eaec
push edi
call ebp
add esp, 0xc
dec ebx
jne 0x498450
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
and eax, 3
je 0x49847e
mov ecx, 4
sub ecx, eax
push ecx
push 0x54eae4
push edi
call ebp
add esp, 0xc
mov eax, dword [esp + 0x10]
add dword [esp + 0x38], 0x10
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x24]
jl 0x498410
jmp 0x4984e6
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx]
mov eax, dword [ebx - 4]
push edx
push eax
mov ecx, esi
call fcn.004a1b10
test eax, eax
je 0x4984bf
mov edx, dword [esi + 8]
mov ecx, dword [ebx]
add edx, dword [ebx - 4]
push ecx
push edx
push edi
call ebp
add esp, 0xc
jmp 0x4984e6
mov eax, dword [esp + 0x14]
xor ebx, ebx
cmp dword [eax], ebx
jle 0x4984e6
lea esp, [esp]
push 1
push 0x54eaec
push edi
call ebp
mov ecx, dword [esp + 0x20]
inc ebx
add esp, 0xc
cmp ebx, dword [ecx]
jl 0x4984d0
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
and eax, 3
je 0x498504
mov ecx, 4
sub ecx, eax
push ecx
push 0x54eae0
push edi
call ebp
add esp, 0xc
add dword [esp + 0x14], 0x14
dec dword [esp + 0x84]
jne 0x498100
mov edx, dword [esp + 0x34]
push edx
call fcn.004a2fd0
mov eax, dword [esp + 0x50]
push eax
call fcn.004a2fd0
mov ecx, dword [esp + 0x64]
push ecx
call fcn.004a2fd0
mov edx, dword [esp + 0x5c]
push edx
call fcn.004a2fd0
mov eax, dword [esp + 0x7c]
push eax
call fcn.004a2fd0
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004a2fd0
add esp, 0x18
mov edx, dword [esp + 0x20]
push edx
call fcn.004a2fd0
add esp, 4
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x78
ret 0x10