Function at 0x523aa0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 8
push esi
push edi
call fcn.005239a0
test al, al
je 0x523af3
push 0x600d24
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x523af3
push str.GetFontUnicodeRanges
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x523aec
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
call eax
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, edi
pop edi
pop esi
add esp, 8
ret
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [esp + 0x14]
push ebx
mov ebx, dword [sym.imp.GDI32.dll_GetFontData]
push ebp
push 0
push 0
push 0
push 0x70616d63
push esi
call ebx
mov ebp, eax
cmp ebp, 0xffffffff
je 0x523c03
cmp ebp, 4
jb 0x523c03
push ebp
call fcn.00427501
mov edi, eax
add esp, 4
test edi, edi
je 0x523c03
push ebp
push edi
push 0
push 0x70616d63
push esi
call ebx
cmp eax, 0xffffffff
je 0x523bfa
mov ax, word [edi + 2]
rol ax, 8
movzx ecx, ax
lea eax, [ebp - 4]
shr eax, 3
cmp cx, ax
mov dword [esp + 0x10], 0
jbe 0x523b6a
movzx ecx, ax
xor eax, eax
test cx, cx
jbe 0x523bbf
movzx edx, ax
mov si, word [edi + edx*8 + 4]
lea edx, [edi + edx*8]
rol si, 8
cmp si, 3
jne 0x523b94
mov dx, word [edx + 6]
rol dx, 8
cmp dx, 1
je 0x523b9e
add eax, 1
cmp ax, cx
jb 0x523b71
jmp 0x523bbf
movzx eax, ax
mov dx, word [edi + eax*8 + 0xa]
rol dx, 8
movzx eax, dx
xor dx, dx
rol dx, 8
movzx edx, dx
or eax, edx
jne 0x523c69
xor eax, eax
test cx, cx
jbe 0x523bfa
jmp 0x523bd0
movzx edx, ax
mov si, word [edi + edx*8 + 4]
lea edx, [edi + edx*8]
rol si, 8
cmp si, 3
jne 0x523bf2
mov dx, word [edx + 6]
rol dx, 8
test dx, dx
je 0x523c0d
add eax, 1
cmp ax, cx
jb 0x523bd0
push edi
call fcn.004274fc
add esp, 4
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 8
ret
movzx eax, ax
mov cx, word [edi + eax*8 + 0xa]
rol cx, 8
xor dx, dx
rol dx, 8
movzx eax, cx
movzx ecx, dx
or eax, ecx
mov dx, word [eax + edi + 6]
rol dx, 8
shr dx, 1
movzx ecx, dx
cmp cx, 2
jne 0x523c65
mov cx, word [eax + edi + 0x14]
rol cx, 8
cmp cx, 0xf020
jne 0x523c65
mov dx, word [eax + edi + 0xe]
rol dx, 8
cmp dx, 0xf0ff
jne 0x523c65
mov dword [esp + 0x10], 1
test eax, eax
je 0x523bfa
lea ecx, [eax + 0xe]
cmp ecx, ebp
jae 0x523bfa
mov dx, word [eax + edi + 6]
rol dx, 8
shr dx, 1
movzx ecx, dx
movzx ebx, cx
lea ecx, [eax + ebx*8 + 0x10]
cmp ecx, ebp
jae 0x523bfa
mov ecx, dword [esp + 0x20]
lea edx, [eax + ebx*2 + 0x10]
lea ebp, [eax + edi + 0xe]
mov eax, dword [esp + 0x10]
add eax, ebx
add edx, edi
test ecx, ecx
lea esi, [eax*4 + 0x10]
mov dword [esp + 0x14], esi
je 0x523d2e
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [ecx], esi
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
je 0x523cdf
mov word [ecx + 0x10], 0x20
mov word [ecx + 0x12], 0xe0
add dword [ecx + 8], 0xe0
test ebx, ebx
jbe 0x523d2e
lea esi, [ecx + eax*4 + 0x10]
sub ebp, edx
mov dword [esp + 0x10], ebx
lea ecx, [ecx]
mov ax, word [edx]
rol ax, 8
mov word [esi], ax
movzx ebx, word [edx]
rol bx, 8
mov ax, 1
sub ax, bx
movzx ebx, word [edx + ebp]
rol bx, 8
add ax, bx
mov word [esi + 2], ax
movzx eax, ax
add dword [ecx + 8], eax
add esi, 4
add edx, 2
sub dword [esp + 0x10], 1
jne 0x523cf0
mov esi, dword [esp + 0x14]
push edi
call fcn.004274fc
add esp, 4
pop ebp
pop ebx
pop edi
mov eax, esi
pop esi
add esp, 8
ret