Function at 0x43fcc0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
mov esi, edx
mov ebx, ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [0x540010]
xor eax, ebp
mov dword [esp + 0xa8], eax
test ecx, ecx
je 0x43fcec
lock inc dword [ecx + 4]
mov edi, dword [ebp + 8]
mov dword [ebx], 0x51fab4
call fcn.004d92f0
mov dword [ebx + 4], eax
mov eax, esi
shr eax, 0xe
mov ecx, esi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x548b80]
bt ecx, eax
mov dword [esp + 4], ebx
jae 0x43fdc1
push esi
call fcn.004a0180
add esp, 4
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 4]
mov dword [eax + 8], esi
mov eax, edi
shr eax, 0xe
mov ecx, edi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x548b80]
bt ecx, eax
jae 0x43fdd2
push edi
call fcn.004a0180
add esp, 4
mov eax, dword [esp + 4]
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ebx
mov ecx, eax
mov eax, dword [ebp + 0x10]
mov dword [ecx + 0x14], eax
test eax, eax
je 0x43fd6b
lock inc dword [eax + 4]
push 0xcfcfcf
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ecx, dword [esp + 4]
mov dword [ecx + 0x18], eax
lea eax, [ecx + 0x1c]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], eax
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
push 0xc
call fcn.004dfb05
add esp, 4
mov dword [eax], 0x827
mov dword [eax + 4], 0x828
mov dword [eax + 8], 0x82a
xor ecx, ecx
mov dword [esp + 0x10], eax
jmp 0x43ff49
mov eax, esi
shr eax, 0x15
mov byte [eax + 0x550b80], 1
jmp 0x43fd24
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x550b80], 1
jmp 0x43fd51
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea esi, [esp + 0x94]
push esi
call fcn.0050e3e0
add esp, 8
lea ecx, [esp + 0x18]
push esi
push 0x47
push 0x524e08
push 1
call fcn.00455540
lea ecx, [esp + 0x54]
push 0x524e66
push str.Unable_to_load_font_id
call fcn.004147c0
push dword [esp + 8]
lea esi, [esp + 0x84]
push esi
call fcn.004794a0
add esp, 8
movzx eax, byte [esp + 0x8b]
mov edx, esi
test al, al
jns 0x43fe50
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
add eax, edx
lea esi, [esp + 0x54]
mov ecx, esi
push eax
push edx
call fcn.004147c0
mov ecx, esi
push 0x524e76
push str._from_resources
jmp 0x43fef5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea esi, [esp + 0x94]
push esi
call fcn.0050e3e0
add esp, 8
lea ecx, [esp + 0x18]
push esi
push 0x4b
push 0x524e08
push 1
call fcn.00455540
lea ecx, [esp + 0x54]
push 0x524e8e
push str.Unable_to_find_font_id
call fcn.004147c0
push ebx
lea esi, [esp + 0x84]
push esi
call fcn.004794a0
add esp, 8
movzx eax, byte [esp + 0x8b]
mov edx, esi
test al, al
jns 0x43feda
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
add eax, edx
lea esi, [esp + 0x54]
mov ecx, esi
push eax
push edx
call fcn.004147c0
mov ecx, esi
push 0x524e9c
push str._in_resources
call fcn.004147c0
cmp byte [esp + 0x8b], 0
jns 0x43ff13
push dword [esp + 0x80]
call fcn.004dfb35
add esp, 4
lea ecx, [esp + 0x18]
call fcn.00455590
cmp byte [esp + 0x9b], 0
jns 0x43ff35
push dword [esp + 0x90]
call fcn.004dfb35
add esp, 4
mov ecx, dword [esp + 0x14]
add ecx, 4
cmp ecx, 0xc
mov eax, dword [esp + 0x10]
je 0x44029e
mov dword [esp + 0x14], ecx
mov ebx, dword [eax + ecx]
movzx eax, bx
push 8
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x43fe70
mov esi, eax
mov dword [esp + 8], ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x43fde3
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
mov eax, edi
xor edi, edi
mov dword [esp + 0xa4], edi
push esi
mov esi, eax
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [esp + 0xa0], 0xffffffff
lea ecx, [esp + 0xa4]
push ecx
push edi
push eax
push ebx
call dword [sym.imp.GDI32.dll_AddFontMemResourceEx]
mov dword [esp + 0xa0], eax
cmp eax, 0xffffffff
je 0x43ffe7
mov ecx, eax
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x20]
cmp eax, dword [edx + 0x24]
jae 0x440076
test eax, eax
je 0x440354
mov edi, esi
mov dword [eax], ecx
add eax, 4
jmp 0x44008d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edi, [esp + 0x94]
push edi
call fcn.0050e3e0
add esp, 8
lea ecx, [esp + 0x18]
push edi
push 0x43
push 0x524e08
push 1
call fcn.00455540
lea ecx, [esp + 0x54]
push 0x524e4e
push str.Unable_to_add_font_id
call fcn.004147c0
push dword [esp + 8]
lea edi, [esp + 0x84]
push edi
call fcn.004794a0
add esp, 8
movzx eax, byte [esp + 0x8b]
mov edx, edi
test al, al
jns 0x440054
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
add eax, edx
lea ecx, [esp + 0x54]
push eax
push edx
call fcn.004147c0
cmp byte [esp + 0x8b], 0
mov edi, esi
jns 0x43ff13
jmp 0x43ff04
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xa0]
push eax
mov edi, edx
call fcn.004379a0
mov edx, edi
mov edi, esi
mov dword [edx + 0x20], eax
lea ecx, [esp + 0x18]
push 0x41
push 0x524e08
push 0
call fcn.00455190
push dword [esp + 0xa4]
lea eax, [esp + 0x84]
push eax
call fcn.0050e610
add esp, 8
movzx eax, byte [esp + 0x8b]
test al, al
js 0x44012c
mov edx, 0xa
cmp al, 0xb
jb 0x440194
lea ecx, [esp + eax]
add ecx, 0x80
cmp ecx, str._font_s__added__id
mov esi, dword [esp + 8]
ja 0x4400fc
lea edx, [esp + eax]
add edx, 0x93
cmp edx, str._font_s__added__id
ja 0x44034d
movups xmm0, xmmword [str._font_s__added__id]
movups xmmword [ecx], xmm0
mov dword [ecx + 0xf], 0x3d646920
add eax, 0x13
mov ecx, eax
and cl, 0x7f
mov byte [esp + 0x8b], cl
lea ecx, [esp + 0x80]
mov byte [ecx + eax], 0
jmp 0x4401b8
mov edx, dword [esp + 0x88]
mov eax, 0x7fffffff
and edx, eax
dec edx
mov eax, dword [esp + 0x84]
mov ecx, edx
sub ecx, eax
cmp ecx, 0x13
jb 0x440194
mov ecx, dword [esp + 0x80]
lea edx, [ecx + eax]
cmp edx, str._font_s__added__id
mov esi, dword [esp + 8]
ja 0x440177
lea esi, [ecx + eax]
add esi, 0x13
cmp esi, str._font_s__added__id
mov esi, dword [esp + 8]
ja 0x44034d
movups xmm0, xmmword [str._font_s__added__id]
movups xmmword [edx], xmm0
mov dword [edx + 0xf], 0x3d646920
add eax, 0x13
mov dword [esp + 0x84], eax
jmp 0x440123
mov esi, eax
sub esi, edx
add esi, 0x13
lea ecx, [esp + 0x80]
push str._font_s__added__id
push 0x13
push 0
push eax
push eax
push esi
push edx
call fcn.00477c80
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x98], eax
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 0x90], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x80], xmm0
mov dword [esp + 0x88], 0
movzx eax, byte [esp + 0x9b]
lea edx, [esp + 0x90]
test al, al
jns 0x440210
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
add eax, edx
lea ecx, [esp + 0x54]
push eax
push edx
call fcn.004147c0
push esi
lea esi, [esp + 0x78]
push esi
call fcn.004794a0
add esp, 8
movzx eax, byte [esp + 0x7f]
mov edx, esi
test al, al
jns 0x44023e
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
add eax, edx
lea ecx, [esp + 0x54]
push eax
push edx
call fcn.004147c0
cmp byte [esp + 0x7f], 0
jns 0x44025e
push dword [esp + 0x74]
call fcn.004dfb35
add esp, 4
cmp byte [esp + 0x9b], 0
jns 0x440277
push dword [esp + 0x90]
call fcn.004dfb35
add esp, 4
cmp byte [esp + 0x8b], 0
jns 0x440290
push dword [esp + 0x80]
call fcn.004dfb35
add esp, 4
lea ecx, [esp + 0x18]
call fcn.004553c0
jmp 0x43ff35
test eax, eax
je 0x4402bf
cmp eax, 0xfffffff8
je 0x440346
mov ecx, eax
add ecx, 4
je 0x440346
push eax
call fcn.004dfb35
add esp, 4
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x440324
xor edi, edi
dec edi
mov eax, edi
lock xadd dword [ecx + 4], eax
test eax, eax
mov ebx, dword [esp + 4]
jne 0x4402f9
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x53a380]
mov ecx, dword [ebp + 0x10]
call esi
mov ecx, dword [ebp + 0x10]
call fcn.00477850
mov ebx, dword [esp + 4]
mov ecx, dword [ebp + 0x10]
mov dword [ebx], 0x51f9a4
lock xadd dword [ecx + 4], edi
test edi, edi
jne 0x44032e
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov edi, ecx
mov ecx, esi
call dword [0x53a380]
mov ecx, edi
call esi
mov ecx, edi
call fcn.00477850
jmp 0x44032e
mov ebx, dword [esp + 4]
mov dword [ebx], 0x51f9a4
mov ecx, dword [esp + 0xa8]
xor ecx, ebp
call fcn.004e0685
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
jmp 0x440359
push str....._third_partylibc_srcinclude__stringchar_traits.h:245:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
jmp 0x440359
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x521354
call fcn.0044d640
int3