Function at 0x474de0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1014
call fcn.005965e0
mov eax, dword [0x601018]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, edx
movzx eax, byte [edi]
shl ax, 8
mov esi, ecx
movzx ecx, byte [edi + 1]
movzx eax, ax
or eax, ecx
cmp byte [edi + 5], 0
mov dword [ebp - 0x100c], esi
mov dword [ebp - 0x1010], edi
mov dword [ebp - 0x1008], eax
mov ecx, esi
je 0x474e45
push str.FNO___Font_Orientation__error__non_zero_flags_not_parsed_yet_
push eax
call fcn.0046c650
add esp, 8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00596083
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x30], 0x1a
je 0x474e69
push str.FNO___Font_Orientation__error__invalid_repeating_group_length_
push eax
call fcn.0046c650
add esp, 8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00596083
mov esp, ebp
pop ebp
ret
push ebx
push str.FNO___Font_Orientation
push 8
call fcn.0046c650
mov edx, dword [ebp - 0x1008]
lea eax, [edi + edx]
lea ebx, [edi + 8]
add esp, 8
mov dword [ebp - 0x1014], eax
cmp ebx, eax
jae 0x475265
jmp 0x474e9b
mov edi, dword [ebp - 0x1010]
mov eax, ebx
sub eax, edi
sub eax, 8
cdq
idiv dword [esi + 0x30]
xor edx, edx
mov ecx, esi
inc eax
push eax
push str._____Orientation__d_r_n
push 0
call fcn.0046c650
push str.____________Reserved
push 2
mov edx, ebx
mov ecx, esi
call fcn.0046c650
movzx eax, byte [ebx + 2]
movzx ecx, byte [ebx + 3]
lea edx, [ebx + 2]
shl ax, 8
movzx eax, ax
add esp, 0x14
or eax, ecx
jne 0x474ee8
push str.____________Character_Rotation_0_degrees
jmp 0x474f17
cmp eax, 0x2d00
jne 0x474ef6
push str.____________Character_Rotation_90_degrees
jmp 0x474f17
cmp eax, 0x5a00
jne 0x474f04
push str.____________Character_Rotation_180_degrees
jmp 0x474f17
cmp eax, 0x8700
jne 0x474f12
push str.____________Character_Rotation_270_degrees
jmp 0x474f17
push str.____________Character_Rotation__error__invalid_value_
push 2
mov ecx, esi
call fcn.0046c650
movzx eax, byte [ebx + 4]
lea edx, [ebx + 4]
shl ax, 8
movsx ecx, ax
movzx eax, byte [edx + 1]
add esp, 8
or ecx, eax
push ecx
push str.____________Maximum_Baseline_Offset__d
push 2
mov ecx, esi
call fcn.0046c650
movzx ecx, byte [ebx + 6]
lea edx, [ebx + 6]
shl cx, 8
movzx eax, cx
movzx ecx, byte [edx + 1]
or eax, ecx
push eax
push str.____________Maximum_Character_Increment__d
push 2
mov ecx, esi
call fcn.0046c650
movzx eax, byte [ebx + 8]
lea edx, [ebx + 8]
shl ax, 8
movzx ecx, ax
movzx eax, byte [edx + 1]
or ecx, eax
push ecx
push str.____________Space_Character_Increment__d
push 2
mov ecx, esi
call fcn.0046c650
movzx ecx, byte [ebx + 0xa]
lea edx, [ebx + 0xa]
shl cx, 8
movzx eax, cx
movzx ecx, byte [edx + 1]
or eax, ecx
push eax
push str.____________Maximum_Baseline_Extent__d
push 2
mov ecx, esi
call fcn.0046c650
movzx eax, byte [ebx + 0xc]
mov dword [ebp - 0x1008], eax
sar eax, 5
inc eax
push eax
lea edx, [ebp - 0x1004]
push str.Font_Index_Number__d_
push edx
mov byte [ebp - 0x1004], 0
call dword [sym.imp.MSVCR100.dll_sprintf]
mov edx, dword [ebp - 0x1008]
lea eax, [ebp - 0x1004]
add esp, 0x3c
dec eax
test dl, 8
je 0x475028
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x474ff0
mov ecx, dword [str.Kerning_data_]
mov dword [eax], ecx
mov ecx, dword [0x5d73a4]
mov dword [eax + 4], ecx
mov ecx, dword [0x5d73a8]
mov dword [eax + 8], ecx
mov cx, word [0x5d73ac]
mov word [eax + 0xc], cx
mov cl, byte [0x5d73ae]
mov byte [eax + 0xe], cl
jmp 0x47505e
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x475028
mov ecx, dword [str.No_kerning_data_]
mov dword [eax], ecx
mov ecx, dword [0x5d73b4]
mov dword [eax + 4], ecx
mov ecx, dword [0x5d73b8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5d73bc]
mov dword [eax + 0xc], ecx
mov cx, word [0x5d73c0]
mov word [eax + 0x10], cx
lea eax, [ebp - 0x1004]
dec eax
test dl, 4
je 0x4750a4
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x475070
mov ecx, dword [str.Uniform_A_space_]
mov dword [eax], ecx
mov ecx, dword [0x5d73c8]
mov dword [eax + 4], ecx
mov ecx, dword [0x5d73cc]
mov dword [eax + 8], ecx
mov ecx, dword [0x5d73d0]
mov dword [eax + 0xc], ecx
mov cx, word [0x5d73d4]
jmp 0x4750d6
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4750a4
mov ecx, dword [str.Minimum_A_space_]
mov dword [eax], ecx
mov ecx, dword [0x5d73dc]
mov dword [eax + 4], ecx
mov ecx, dword [0x5d73e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x5d73e4]
mov dword [eax + 0xc], ecx
mov cx, word [0x5d73e8]
lea edi, [ebp - 0x1004]
dec edi
mov word [eax + 0x10], cx
test dl, 2
je 0x4750f5
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4750e6
mov esi, str.Uniform_baseline_offset_
jmp 0x475102
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4750f5
mov esi, str.Maximum_baseline_offset_
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea edi, [ebp - 0x1004]
dec edi
test dl, 1
je 0x475126
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x475117
mov esi, str.Uniform_character_increment_
jmp 0x475133
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x475126
mov esi, str.Maximum_character_increment_
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [ebp - 0x1004], 0
je 0x475160
lea eax, [ebp - 0x1004]
lea esi, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x475150
sub eax, esi
mov byte [ebp + eax - 0x1006], cl
mov esi, dword [ebp - 0x100c]
lea eax, [ebp - 0x1004]
push eax
push edx
push str.____________Orientation_Control_Flags_0x_02X___s_
push 1
lea edx, [ebx + 0xc]
mov ecx, esi
call fcn.0046c650
push str.____________Reserved
push 1
lea edx, [ebx + 0xd]
mov ecx, esi
call fcn.0046c650
movzx ecx, byte [ebx + 0xe]
lea edx, [ebx + 0xe]
shl cx, 8
movzx eax, cx
movzx ecx, byte [edx + 1]
or eax, ecx
push eax
push str.____________Em_Space_Increment__d
push 2
mov ecx, esi
call fcn.0046c650
push str.____________Reserved
push 2
lea edx, [ebx + 0x10]
mov ecx, esi
call fcn.0046c650
movzx eax, byte [ebx + 0x12]
lea edx, [ebx + 0x12]
shl ax, 8
movzx ecx, ax
movzx eax, byte [edx + 1]
or ecx, eax
push ecx
push str.____________Figure_Space_Increment__d
push 2
mov ecx, esi
call fcn.0046c650
movzx ecx, byte [ebx + 0x14]
lea edx, [ebx + 0x14]
shl cx, 8
movzx eax, cx
movzx ecx, byte [edx + 1]
or eax, ecx
push eax
push str.____________Nominal_Character_Increment__d
push 2
mov ecx, esi
call fcn.0046c650
movzx eax, byte [ebx + 0x16]
lea edx, [ebx + 0x16]
shl ax, 8
movzx ecx, ax
movzx eax, byte [edx + 1]
add esp, 0x44
or ecx, eax
push ecx
push str.____________Default_Baseline_Increment__d
push 2
mov ecx, esi
call fcn.0046c650
movzx ecx, byte [ebx + 0x18]
lea edx, [ebx + 0x18]
shl cx, 8
movsx eax, cx
movzx ecx, byte [edx + 1]
or eax, ecx
push eax
push str.____________Minimum_A_Space__d
push 2
mov ecx, esi
call fcn.0046c650
add ebx, dword [esi + 0x30]
add esp, 0x18
cmp ebx, dword [ebp - 0x1014]
jb 0x474e95
mov ecx, dword [ebp - 4]
pop ebx
pop edi
xor ecx, ebp
pop esi
call fcn.00596083
mov esp, ebp
pop ebp
ret