Function at 0x41ea30
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a4407
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x10c08
call fcn.004e4700
mov eax, dword [0x5f1014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10bc0], ecx
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10be0], eax
test eax, eax
jle 0x41f64e
push 0x104
lea eax, [ebp - 0x330]
push 0
push eax
call fcn.0057b850
add esp, 0xc
lea eax, [ebp - 0x120]
push 0x104
push 0
push eax
call fcn.0057b850
xor eax, eax
xor edi, edi
xor edx, edx
mov dword [ebp - 0x10bd4], eax
add esp, 0xc
mov dword [ebp - 0x10bfc], eax
mov dword [ebp - 0x10bd0], edi
mov dword [ebp - 0x10bf8], edi
mov dword [ebp - 0x10be4], edx
mov dword [ebp - 0x10bf4], edx
mov ecx, dword [ebx + 8]
mov dword [ebp - 4], edx
test ecx, ecx
je 0x41ed22
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x41eaf5
sub edx, esi
je 0x41ed22
lea edx, [ebp - 0x330]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x41eb10
push 0
lea eax, [ebp - 0x120]
push eax
push 0x104
lea eax, [ebp - 0x330]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x348]
call fcn.00403e20
lea eax, [ebp - 0x348]
mov byte [ebp - 4], 1
push eax
push 0
lea ecx, [ebp - 0x10bfc]
call fcn.00420100
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x334]
cmp eax, 0x10
jb 0x41eb81
inc eax
push eax
push dword [ebp - 0x348]
call fcn.00401ef0
add esp, 8
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x10bb8]
call fcn.004074c0
push 0x104
lea eax, [ebp - 0x228]
push 0
push eax
call fcn.0057b850
mov ecx, dword [ebp - 0x10bc0]
lea eax, [ebp - 0x228]
add esp, 0xc
push 0x104
push eax
push dword [ecx + 0x52c]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x228]
push 0x5c
push eax
call fcn.0058010b
add esp, 8
test eax, eax
je 0x41ecfe
mov byte [eax + 1], 0
lea ecx, [ebp - 0x87b0]
lea eax, [ebp - 0x120]
push eax
call fcn.004074c0
lea ecx, [ebp - 0x87b0]
call fcn.004076c0
mov edx, eax
mov esi, eax
mov al, byte [edx]
inc edx
test al, al
jne 0x41ec05
lea edi, [ebp - 0x228]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x41ec15
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x87b0]
call fcn.004076d0
mov edx, eax
mov esi, eax
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x41ec40
lea edi, [ebp - 0x228]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x41ec50
mov ecx, edx
lea eax, [ebp - 0x228]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
lea ecx, [ebp - 0x348]
call fcn.00403e20
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x10bf4]
mov edi, dword [ebp - 0x10bf8]
mov dword [ebp - 0x10be4], ecx
cmp edi, ecx
je 0x41ecc2
movups xmm0, xmmword [ebp - 0x348]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x338]
movq qword [edi + 0x10], xmm0
add edi, 0x18
mov dword [ebp - 0x10bf8], edi
jmp 0x41ed10
lea eax, [ebp - 0x348]
push eax
push edi
lea ecx, [ebp - 0x10bfc]
call fcn.00420100
mov eax, dword [ebp - 0x334]
cmp eax, 0x10
jb 0x41ecfe
inc eax
push eax
push dword [ebp - 0x348]
call fcn.00401ef0
mov ecx, dword [ebp - 0x10bf4]
add esp, 8
mov dword [ebp - 0x10be4], ecx
jmp 0x41ed0a
mov eax, dword [ebp - 0x10bf4]
mov dword [ebp - 0x10be4], eax
mov edi, dword [ebp - 0x10bf8]
mov eax, dword [ebp - 0x10bfc]
mov dword [ebp - 0x10bd0], edi
mov dword [ebp - 0x10bd4], eax
xor eax, eax
xor esi, esi
mov dword [ebp - 0x10bbc], eax
mov dword [ebp - 0x10bec], eax
mov dword [ebp - 0x10bc8], esi
mov dword [ebp - 0x10be8], esi
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x10bd4]
mov dword [ebp - 0x10bcc], eax
cmp eax, edi
je 0x41ee35
nop word [eax + eax]
push eax
lea ecx, [ebp - 0x348]
call fcn.00403e60
lea eax, [ebp - 0x348]
push eax
lea eax, [ebp - 0x10c10]
push eax
call fcn.00420790
mov esi, dword [ebp - 0x10c08]
mov eax, dword [0x5f3390]
cmp byte [esi + 0xd], 0
jne 0x41eda9
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x348]
push eax
call fcn.004208e0
test al, al
mov eax, dword [0x5f3390]
je 0x41edab
mov esi, eax
cmp esi, eax
jne 0x41ede1
mov eax, dword [ebp - 0x334]
cmp eax, 0x10
jb 0x41edca
inc eax
push eax
push dword [ebp - 0x348]
call fcn.00401ef0
add esp, 8
mov eax, dword [ebp - 0x10bcc]
add eax, 0x18
mov dword [ebp - 0x10bcc], eax
cmp eax, edi
jne 0x41ed60
xor esi, esi
jmp 0x41ee35
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x10bc8], eax
test eax, eax
je 0x41edfb
lock inc dword [eax + 4]
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x10bc8], eax
mov esi, dword [esi + 0x28]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x334]
mov dword [ebp - 0x10bbc], esi
mov dword [ebp - 0x10bec], esi
mov esi, dword [ebp - 0x10bc8]
mov dword [ebp - 0x10be8], esi
cmp eax, 0x10
jb 0x41ee35
inc eax
push eax
push dword [ebp - 0x348]
call fcn.00401ef0
add esp, 8
mov eax, dword [ebp - 0x10bbc]
test eax, eax
jne 0x41ef96
mov eax, dword [ebp - 0x10bc0]
add eax, 0x52c
push eax
lea eax, [ebp - 0x10c10]
push eax
call fcn.00420740
mov ecx, dword [ebp - 0x10c08]
cmp byte [ecx + 0xd], 0
jne 0x41ee78
mov eax, dword [ebp - 0x10bc0]
mov eax, dword [eax + 0x52c]
cmp eax, dword [ecx + 0x10]
jae 0x41ee7e
mov ecx, dword [0x5f3398]
cmp ecx, dword [0x5f3398]
je 0x41eef0
mov byte [ebp - 4], 5
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x41ee98
lock inc dword [edx + 4]
mov edx, dword [ecx + 0x18]
mov eax, dword [ecx + 0x14]
mov ecx, esi
mov dword [ebp - 0x10bbc], eax
mov esi, edx
mov dword [ebp - 0x10bec], eax
mov dword [ebp - 0x10bc4], ecx
mov dword [ebp - 0x10bc8], esi
mov dword [ebp - 0x10be8], esi
test ecx, ecx
je 0x41eeea
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x41eee4
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x10bc4]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x41eee4
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x10bbc]
mov byte [ebp - 4], 3
jmp 0x41eef6
mov eax, dword [ebp - 0x10bbc]
test eax, eax
jne 0x41ef96
push 0x5f317c
lea eax, [ebp - 0x10c10]
push eax
call fcn.00420740
mov ecx, dword [ebp - 0x10c08]
cmp byte [ecx + 0xd], 0
jne 0x41ef25
mov eax, dword [0x5f317c]
cmp eax, dword [ecx + 0x10]
jae 0x41ef2b
mov ecx, dword [0x5f3398]
cmp ecx, dword [0x5f3398]
je 0x41ef96
mov byte [ebp - 4], 6
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x41ef45
lock inc dword [edx + 4]
mov edx, dword [ecx + 0x18]
mov eax, dword [ecx + 0x14]
mov ecx, esi
mov dword [ebp - 0x10bbc], eax
mov dword [ebp - 0x10bec], eax
mov eax, edx
mov dword [ebp - 0x10bc4], ecx
mov dword [ebp - 0x10bc8], eax
mov dword [ebp - 0x10be8], eax
test ecx, ecx
je 0x41ef92
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x41ef92
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x10bc4]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x41ef92
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x10bbc], 0
jne 0x41f34e
mov eax, dword [ebp - 0x10bd4]
mov dword [ebp - 0x10bc4], eax
cmp eax, edi
je 0x41f34e
nop word [eax + eax]
push eax
lea ecx, [ebp - 0x348]
call fcn.00403e60
push 0x11c
mov byte [ebp - 4], 7
call fcn.004e38de
mov edi, eax
add esp, 4
mov dword [ebp - 0x10c00], edi
mov byte [ebp - 4], 8
lea esi, [edi + 0xc]
xorps xmm0, xmm0
lea eax, [esi + 9]
movq qword [edi], xmm0
mov dword [edi + 8], 0
push 0x103
push 0
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov dword [edi], vtable.std::_Ref_count_obj2_class_CIconFontCache_.0
push eax
mov dword [esi + 4], 0
call fcn.0057b850
mov dword [esi], 0
add esp, 0xc
mov byte [esi + 8], 0
mov eax, dword [esi + 4]
mov dword [esi + 0x10c], 0
test eax, eax
jle 0x41f05f
inc eax
push eax
call fcn.004e3b5f
mov ecx, dword [esi + 4]
add esp, 4
inc ecx
mov dword [esi], eax
push ecx
push 0
push eax
call fcn.0057b850
add esp, 0xc
mov dword [ebp - 0x10c18], esi
mov dword [ebp - 0x10c14], edi
mov byte [ebp - 4], 9
mov eax, dword [esi]
test eax, eax
je 0x41f084
push eax
call fcn.004e3b68
add esp, 4
mov dword [esi], 0
push 0x104
lea eax, [esi + 8]
mov dword [esi + 4], 0
push 0
push eax
call fcn.0057b850
add esp, 0xc
lea eax, [ebp - 0x120]
push 0
push 0x80
push 3
push 0
push 1
push accept
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x10bcc], eax
cmp eax, 0xffffffff
je 0x41f1a3
push 0
lea eax, [esi + 8]
push eax
push 0x104
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
lea eax, [ebp - 0x10bdc]
mov dword [ebp - 0x10bdc], 0
push eax
push dword [ebp - 0x10bcc]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x10bd8], eax
test eax, eax
je 0x41f197
inc eax
push eax
call fcn.004e3b5f
mov ecx, dword [esi + 4]
add esp, 4
inc ecx
mov dword [esi], eax
push ecx
push 0
push eax
call fcn.0057b850
add esp, 0xc
mov dword [ebp - 0x10bf0], 0
lea eax, [ebp - 0x10bf0]
push 0
push eax
push dword [ebp - 0x10bd8]
push dword [esi]
push dword [ebp - 0x10bcc]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x41f197
mov eax, dword [ebp - 0x10bf0]
cmp eax, dword [ebp - 0x10bd8]
je 0x41f20e
mov eax, dword [esi]
test eax, eax
je 0x41f17d
push eax
call fcn.004e3b68
add esp, 4
mov dword [esi], 0
push 0x104
lea eax, [esi + 8]
mov dword [esi + 4], 0
push 0
push eax
call fcn.0057b850
add esp, 0xc
push dword [ebp - 0x10bcc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or esi, 0xffffffff
mov byte [ebp - 4], 7
mov eax, esi
lea ecx, [edi + 4]
lock xadd dword [ecx], eax
jne 0x41f1cd
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lea ecx, [edi + 8]
lock xadd dword [ecx], eax
jne 0x41f1cd
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x334]
cmp eax, 0x10
jb 0x41f1ec
inc eax
push eax
push dword [ebp - 0x348]
call fcn.00401ef0
add esp, 8
mov eax, dword [ebp - 0x10bc4]
mov edi, dword [ebp - 0x10bd0]
add eax, 0x18
mov dword [ebp - 0x10bc4], eax
cmp eax, edi
jne 0x41efc0
jmp 0x41f351
push dword [ebp - 0x10bcc]
mov dword [esi + 4], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 0xa
lea eax, [edi + 4]
lock inc dword [eax]
mov ecx, dword [ebp - 0x10bc8]
mov eax, esi
mov dword [ebp - 0x10bbc], eax
mov dword [ebp - 0x10bec], eax
mov eax, edi
mov dword [ebp - 0x10bdc], ecx
mov dword [ebp - 0x10bc8], eax
mov dword [ebp - 0x10be8], eax
test ecx, ecx
je 0x41f276
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x41f276
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x10bdc]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x41f276
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x348]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x368]
call fcn.00403e60
lea eax, [edi + 4]
lock inc dword [eax]
mov dword [ebp - 0x350], esi
mov dword [ebp - 0x34c], edi
lea eax, [ebp - 0x368]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x10c04]
push eax
call fcn.004205f0
mov byte [ebp - 4], 0xc
or esi, 0xffffffff
mov ecx, dword [ebp - 0x34c]
test ecx, ecx
je 0x41f2e7
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x41f2e7
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x34c]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x41f2e7
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x354]
cmp eax, 0x10
jb 0x41f302
inc eax
push eax
push dword [ebp - 0x368]
call fcn.00401ef0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [edi + 4]
mov eax, esi
lock xadd dword [ecx], eax
jne 0x41f327
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x41f327
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x334]
cmp eax, 0x10
jb 0x41f346
inc eax
push eax
push dword [ebp - 0x348]
call fcn.00401ef0
add esp, 8
mov edi, dword [ebp - 0x10bd0]
jmp 0x41f351
or esi, 0xffffffff
cmp dword [ebp - 0x10bbc], 0
mov eax, dword [ebp - 0x10bc0]
jne 0x41f670
mov ecx, dword [eax + 0x52c]
mov byte [ebp - 0x120], 0
mov dword [ebp - 0x10bd0], ecx
test ecx, ecx
je 0x41f589
movzx eax, word [0x5f1a00]
push 8
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [ebp - 0x10bdc], eax
test eax, eax
je 0x41f583
push eax
push dword [ebp - 0x10bd0]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push dword [ebp - 0x10bdc]
mov dword [ebp - 0x10bc4], eax
push dword [ebp - 0x10bd0]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x10c00], eax
test eax, eax
je 0x41f583
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x10bf0], eax
test eax, eax
je 0x41f577
push 0x11c
call fcn.004e38de
add esp, 4
mov dword [ebp - 0x10bd8], eax
mov byte [ebp - 4], 0xd
lea ecx, [eax + 4]
xorps xmm0, xmm0
mov dword [ebp - 0x10bcc], ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_obj2_class_CIconFontCache_.0
add eax, 0xc
mov dword [ecx], 1
mov ecx, dword [ebp - 0x10bc4]
push 0x103
mov dword [ebp - 0x10bbc], eax
mov dword [eax + 4], ecx
add eax, 9
push 0
push eax
call fcn.0057b850
mov eax, dword [ebp - 0x10bbc]
add esp, 0xc
mov dword [eax], 0
mov byte [eax + 8], 0
mov ecx, dword [eax + 4]
mov dword [eax + 0x10c], 0
test ecx, ecx
jle 0x41f497
lea eax, [ecx + 1]
push eax
call fcn.004e3b5f
mov ecx, dword [ebp - 0x10bbc]
add esp, 4
mov dword [ecx], eax
mov ecx, dword [ecx + 4]
inc ecx
push ecx
push 0
push eax
call fcn.0057b850
mov eax, dword [ebp - 0x10bbc]
add esp, 0xc
mov ecx, dword [ebp - 0x10bc8]
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x10bec], eax
mov eax, dword [ebp - 0x10bd8]
mov dword [ebp - 0x10bdc], ecx
mov dword [ebp - 0x10bc8], eax
mov dword [ebp - 0x10be8], eax
test ecx, ecx
je 0x41f4e4
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x41f4e4
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x10bdc]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x41f4e4
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x10bc4]
mov eax, dword [ebp - 0x10bbc]
push dword [ebp - 0x10bf0]
push dword [eax]
call fcn.0057a3d0
mov eax, dword [ebp - 0x10bd0]
add esp, 0xc
mov dword [ebp - 0x10c10], eax
mov eax, dword [ebp - 0x10bcc]
lock inc dword [eax]
mov eax, dword [ebp - 0x10bbc]
mov dword [ebp - 0x10c0c], eax
mov eax, dword [ebp - 0x10bd8]
mov dword [ebp - 0x10c08], eax
lea eax, [ebp - 0x10c10]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x10c18]
push eax
call fcn.004204f0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x10c08]
test ecx, ecx
je 0x41f573
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x41f573
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x10c08]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x41f573
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
push dword [ebp - 0x10c00]
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, dword [ebp - 0x10bc0]
cmp dword [ebp - 0x10bbc], 0
jne 0x41f670
push 0x16d
push str.CIconFont::LoadFont
push str.LoadFont__p____d_n
call fcn.004022e0
mov esi, dword [ebp - 0x10bc8]
add esp, 0xc
mov byte [ebp - 4], 0
test esi, esi
je 0x41f5dd
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x41f5dd
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x41f5dd
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0x10bd4]
test ecx, ecx
je 0x41f64e
cmp ecx, edi
je 0x41f625
lea esi, [ecx + 0x14]
nop
mov eax, dword [esi]
cmp eax, 0x10
jb 0x41f604
inc eax
push eax
push dword [esi - 0x14]
call fcn.00401ef0
add esp, 8
mov dword [esi - 4], 0
mov dword [esi], 0xf
mov byte [esi - 0x14], 0
add esi, 0x18
lea eax, [esi - 0x14]
cmp eax, edi
jne 0x41f5f0
mov ecx, dword [ebp - 0x10bd4]
mov edx, dword [ebp - 0x10be4]
mov eax, 0x2aaaaaab
sub edx, ecx
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
shl eax, 3
push eax
push ecx
call fcn.00401ef0
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004e389c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
cmp dword [eax], 0
je 0x41f67b
mov dword [eax], 0
lea ecx, [ebp - 0x120]
mov dword [eax + 0x40c], 0
mov dword [eax + 0x410], 0
add eax, 0x414
push ecx
push eax
mov dword [ebp - 0x10bd8], 0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0x10bc0]
mov ecx, dword [ebp - 0x10be0]
push 0x3c
push 0
mov dword [eax + 0x518], ecx
lea eax, [ebp - 0x3a4]
push eax
call fcn.0057b850
add esp, 0xc
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x10c00], eax
test eax, eax
je 0x41f733
lea ecx, [ebp - 0x3a4]
push ecx
push 0x3c
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
push dword [ebp - 0x10c00]
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [ebp - 0x330]
push eax
mov eax, dword [ebp - 0x10bc0]
add eax, 0x534
push eax
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpyA]
call eax
mov eax, dword [ebp - 0x10bc0]
lea ecx, [eax + 0x63c]
lea edx, [eax + 0x638]
mov eax, dword [ebp - 0x10be0]
jmp 0x41f791
push str.iconfont
lea eax, [ebp - 0x388]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_lstrcpyA]
call eax
lea eax, [ebp - 0x330]
push eax
mov eax, dword [ebp - 0x10bc0]
add eax, 0x534
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 0x10bc0]
mov edx, dword [ebp - 0x10be0]
mov dword [ebp - 0x10c00], edx
lea eax, [ecx + 0x63c]
lea edx, [ecx + 0x638]
mov ecx, dword [ebp - 0x10be0]
mov dword [ebp - 0x10be0], ecx
mov ecx, eax
mov eax, dword [ebp - 0x10c00]
mov esi, dword [ebp - 0x10be0]
mov dword [ecx], esi
mov esi, dword [ebp - 0x10bbc]
mov dword [edx], eax
mov dword [ebp - 0x10bc4], 2
mov eax, dword [esi]
test eax, eax
je 0x41f7d2
mov ecx, dword [ebp - 0x10bc0]
push ecx
push 0
push dword [esi + 4]
push eax
push dword [0x5f3288]
call fcn.00522f70
add esp, 0x14
mov dword [ebp - 0x10bc4], eax
test esi, esi
mov esi, dword [ebp - 0x10bc0]
jne 0x41f7ef
push dword [esi + 0x52c]
push str.load_iconfont_buffer_fail__p_n
call fcn.004022e0
add esp, 8
mov eax, dword [ebp - 0x10bc4]
cmp eax, 2
jne 0x41f80f
push dword [esi + 0x52c]
push str.error:fonts_not_support_format___p_n
call fcn.004022e0
add esp, 8
jmp 0x41f87b
test eax, eax
jne 0x41f87b
push 0x756e6963
push dword [esi]
call fcn.00524cb0
mov eax, dword [esi]
add esp, 8
mov ecx, eax
mov edx, dword [eax + 0x28]
test eax, eax
je 0x41f848
cmp dword [eax + 0x5c], 0
jne 0x41f848
test edx, edx
je 0x41f848
mov eax, dword [edx]
push dword [eax + 4]
push 0
call fcn.00524cb0
mov ecx, dword [esi]
add esp, 8
mov eax, dword [esi + 0x63c]
push 0
shl eax, 6
push 0
push eax
mov eax, dword [esi + 0x638]
shl eax, 6
push eax
push ecx
call fcn.00524ec0
xor ecx, ecx
add esp, 0x14
test eax, eax
mov edx, 1
cmove ecx, edx
mov dword [ebp - 0x10bd8], ecx
mov esi, dword [ebp - 0x10bc8]
mov byte [ebp - 4], 0
test esi, esi
je 0x41f8ab
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x41f8ab
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x41f8ab
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x10bd4]
test esi, esi
je 0x41f91e
cmp esi, edi
je 0x41f8f5
add esi, 0x14
nop dword [eax]
mov eax, dword [esi]
cmp eax, 0x10
jb 0x41f8d4
inc eax
push eax
push dword [esi - 0x14]
call fcn.00401ef0
add esp, 8
mov dword [esi - 4], 0
mov dword [esi], 0xf
mov byte [esi - 0x14], 0
add esi, 0x18
lea eax, [esi - 0x14]
cmp eax, edi
jne 0x41f8c0
mov esi, dword [ebp - 0x10bd4]
mov ecx, dword [ebp - 0x10be4]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea ecx, [ecx + ecx*2]
shl ecx, 3
push ecx
push esi
call fcn.00401ef0
add esp, 8
mov eax, dword [ebp - 0x10bd8]
jmp 0x41f650