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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
cmp byte [esp + 0x80], 0
je 0x49a330
mov byte [ecx], 0
mov byte [ecx + 0x18], 0
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x78]
cmp edx, 4
je 0x49a45c
cmp edx, 3
je 0x49a402
cmp edx, 1
jne 0x49a321
cmp dword [eax + 4], 4
jne 0x49a321
mov dword [esp + 0x10], ecx
mov byte [esp + 0x14], 0xe
mov dword [esp + 0x15], 0x20494241
mov dword [esp + 0x18], 0x67617420
mov byte [esp + 0x1c], 0
mov eax, dword [eax]
mov ecx, dword [eax]
test ecx, ecx
je 0x49a5c7
bswap ecx
xor ebp, ebp
mov esi, 0x15
nop word cs:[eax + eax]
mov dword [esp], esi
mov esi, ebp
shld esi, ecx, 0x1f
mov ebx, ebp
shr ebx, 1
mov edi, esi
add edi, ebx
adc edi, 0
mov eax, edi
mov edx, 0xcccccccd
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub edi, eax
sub esi, edi
sbb ebx, 0
mov eax, esi
mov edx, 0xcccccccd
mul edx
imul esi, esi, 0xcccccccc
add esi, edx
imul edx, ebx, 0xcccccccd
add edx, esi
mov esi, eax
add esi, eax
lea esi, [esi + esi*4]
mov ebx, ecx
sub ebx, esi
mov esi, dword [esp]
or bl, 0x30
mov byte [esp + esi + 0x37], bl
dec esi
mov edi, 9
cmp edi, ecx
mov ecx, 0
sbb ecx, ebp
mov ecx, eax
mov ebp, edx
jb 0x49a390
jmp 0x49a5d1
mov byte [esp + 0x14], 0x10
mov dword [esp + 0x19], 0x67617420
mov dword [esp + 0x15], 0x68637241
mov byte [esp + 0x1d], 0
lea esi, [esp + 0x20]
mov ebp, dword [eax]
test ebp, ebp
je 0x49a503
mov ebx, dword [eax + 4]
cmp ebx, 0xfffffff8
jae 0x49a90f
mov dword [esp + 0x10], ecx
cmp ebx, 0xb
jae 0x49a513
mov eax, ebx
add al, bl
mov byte [esp + 0x20], al
lea edi, [esp + 0x21]
test ebx, ebx
jne 0x49a53b
jmp 0x49a546
cmp dword [eax + 4], 4
jne 0x49a321
mov dword [esp + 0x10], ecx
mov eax, dword [eax]
mov ebp, dword [eax]
mov edi, ebp
bswap edi
xorps xmm0, xmm0
movsd qword [esp + 0x50], xmm0
mov dword [esp + 0x58], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x18], xmm0
mov byte [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
mov eax, dword [sym.imp.libLLVM_18.dll_vtable_for_llvm::raw_string_ostream]
add eax, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x34], eax
lea esi, [esp + 0x14]
mov ecx, esi
push 0
push 0
push 0
call fcn.0054a3ba
mov dword [esp + 0x5c], 0x55ac0c
mov dword [esp + 0x60], 6
sub esp, 0x10
movsd xmm0, qword [esp + 0x6c]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], esi
mov dword [esp], edi
call fcn.0045b710
add esp, 0x10
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx]
test al, 1
je 0x49a577
mov eax, dword [ecx + 4]
jmp 0x49a579
xorps xmm0, xmm0
movsd qword [esi], xmm0
mov dword [esi + 8], 0
jmp 0x49a54e
mov esi, ebx
or ebx, 7
lea eax, [ebx + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [esp + 0x28], eax
add ebx, 2
mov dword [esp + 0x20], ebx
mov ebx, esi
lea esi, [esp + 0x20]
mov dword [esp + 0x24], ebx
push ebx
push ebp
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov byte [edi + ebx], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [ecx + 8], eax
movsd xmm0, qword [esp + 0x14]
movsd qword [ecx], xmm0
movsd xmm0, qword [esi]
movsd qword [ecx + 0xc], xmm0
mov eax, dword [esi + 8]
mov dword [ecx + 0x14], eax
mov byte [ecx + 0x18], 1
jmp 0x49a328
shr eax, 1
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
sub edx, ecx
test eax, eax
je 0x49a5a7
cmp edx, 2
ja 0x49a66d
lea ecx, [esp + 0x14]
push 3
push 0x55ac84
call fcn.0054a3c0
mov esi, eax
jmp 0x49a67b
cmp edx, 1
ja 0x49a76e
lea ecx, [esp + 0x14]
push 2
push 0x552ef1
call fcn.0054a3c0
mov esi, eax
jmp 0x49a77c
mov byte [esp + 0x4c], 0x30
mov esi, 0x14
lea ecx, [esp + 0x20]
mov ebx, 0x15
sub ebx, esi
cmp ebx, 0xfffffff8
jae 0x49a911
cmp ebx, 0xa
mov ebp, dword [esp + 0x10]
ja 0x49a5fc
mov eax, ebx
add al, bl
mov byte [esp + 0x20], al
lea edi, [esp + 0x21]
jmp 0x49a624
mov dword [esp], esi
mov esi, ebx
or esi, 7
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [esp + 0x28], eax
add esi, 2
mov dword [esp + 0x20], esi
mov esi, dword [esp]
mov dword [esp + 0x24], ebx
cmp esi, 0x15
je 0x49a63c
lea eax, [esp + esi]
add eax, 0x38
push ebx
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add edi, ebx
lea ecx, [esp + 0x20]
mov byte [edi], 0
mov eax, dword [esp + 0x1c]
mov dword [ebp + 8], eax
movsd xmm0, qword [esp + 0x14]
movsd qword [ebp], xmm0
mov eax, dword [ecx + 8]
mov dword [ebp + 0x14], eax
movsd xmm0, qword [ecx]
movsd qword [ebp + 0xc], xmm0
mov byte [ebp + 0x18], 1
jmp 0x49a328
mov byte [ecx + 2], pe_nt_image_headers32
mov word [ecx], 0x3028
add dword [esp + 0x24], 3
test ebp, ebp
je 0x49a6bb
xor eax, eax
mov ebp, 0x11
mov ecx, 0xf
xor edx, edx
nop dword [eax]
mov ebx, edi
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789ABCDEF]
mov byte [esp + ebp + 0x37], bl
mov ebx, eax
shld ebx, edi, 0x1c
dec ebp
shr edx, 4
cmp ecx, edi
mov edi, 0
sbb edi, eax
mov edi, ebx
mov eax, edx
jb 0x49a690
jmp 0x49a6c5
mov byte [esp + 0x48], 0x30
mov ebp, 0x10
mov ebx, 0x11
sub ebx, ebp
cmp ebx, 0xfffffff8
jae 0x49a916
cmp ebx, 0xa
ja 0x49a6e8
mov eax, ebx
add al, bl
mov byte [esp + 4], al
lea edi, [esp + 5]
jmp 0x49a710
mov dword [esp], esi
mov esi, ebx
or esi, 7
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [esp + 0xc], eax
add esi, 2
mov dword [esp + 4], esi
mov esi, dword [esp]
mov dword [esp + 8], ebx
cmp ebp, 0x11
je 0x49a728
lea eax, [esp + ebp]
add eax, 0x38
push ebx
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add edi, ebx
mov byte [edi], 0
movzx eax, byte [esp + 4]
test al, 1
je 0x49a73e
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
jmp 0x49a744
shr eax, 1
lea edx, [esp + 5]
mov ecx, esi
push eax
push edx
call fcn.0054a3c0
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x49a760
mov byte [ecx], 0x29
inc dword [eax + 0x10]
jmp 0x49a84d
mov ecx, eax
push 1
push 0x5514e0
jmp 0x49a848
mov word [ecx], 0x7830
add dword [esp + 0x24], 2
lea esi, [esp + 0x14]
test ebp, ebp
je 0x49a7bb
xor eax, eax
mov ebp, 0x11
mov ecx, 0xf
xor edx, edx
nop
mov ebx, edi
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789ABCDEF]
mov byte [esp + ebp + 0x37], bl
mov ebx, eax
shld ebx, edi, 0x1c
dec ebp
shr edx, 4
cmp ecx, edi
mov edi, 0
sbb edi, eax
mov edi, ebx
mov eax, edx
jb 0x49a790
jmp 0x49a7c5
mov byte [esp + 0x48], 0x30
mov ebp, 0x10
mov ebx, 0x11
sub ebx, ebp
cmp ebx, 0xfffffff8
jae 0x49a916
cmp ebx, 0xa
ja 0x49a7e8
mov eax, ebx
add al, bl
mov byte [esp + 4], al
lea edi, [esp + 5]
jmp 0x49a810
mov dword [esp], esi
mov esi, ebx
or esi, 7
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [esp + 0xc], eax
add esi, 2
mov dword [esp + 4], esi
mov esi, dword [esp]
mov dword [esp + 8], ebx
cmp ebp, 0x11
je 0x49a828
lea eax, [esp + ebp]
add eax, 0x38
push ebx
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add edi, ebx
mov byte [edi], 0
movzx eax, byte [esp + 4]
test al, 1
je 0x49a83e
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
jmp 0x49a844
shr eax, 1
lea edx, [esp + 5]
mov ecx, esi
push eax
push edx
call fcn.0054a3c0
test byte [esp + 4], 1
je 0x49a860
push dword [esp + 0xc]
call sub.libc.dll_operator_delete_void_
add esp, 4
push 0x10
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], 0x11
mov dword [esp + 0x3c], 0xd
mov word [eax + 0xc], 0x73
mov dword [eax + 8], 0x67616c66
mov dword [eax + 4], 0x20657275
mov dword [eax], 0x74616546
lea esi, [esp + 0x44]
mov eax, dword [esp + 0x34]
test byte [eax], 1
jne 0x49a8b5
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
movsd xmm0, qword [eax]
movsd qword [esi], xmm0
jmp 0x49a8c2
mov ecx, esi
push dword [eax + 4]
push dword [eax + 8]
call fcn.00407700
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x38]
movsd qword [eax], xmm0
movsd xmm0, qword [esi]
movsd qword [eax + 0xc], xmm0
mov ecx, dword [esi + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 0x18], 1
lea ecx, [esp + 0x14]
call fcn.0054a3d2
test byte [esp + 0x50], 1
je 0x49a328
push dword [esp + 0x58]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x49a328
mov ecx, esi
call fcn.00407760
lea ecx, [esp + 4]
call fcn.00407760
int3