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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x290
lea eax, [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp dword [ebp + 0x10], 2
mov edi, dword [ebp + 0x20]
jne 0x4a8ad4
mov eax, dword [eax]
movzx eax, word [eax]
cmp eax, 0x7d7b
je 0x4a8c0c
lea eax, [esp + 0x88]
push 0x200
push 0
push eax
mov esi, edx
mov dword [esp + 0x10], edi
mov edi, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea eax, [ebp + 0xc]
movsd xmm0, qword [eax]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x80], 0x591ac8
mov eax, dword [esp + 4]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], 0x1f4
movsd qword [esp + 0x58], xmm0
mov dword [esp + 0x24], 0
sub esp, 0x20
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
movups xmm0, xmmword [esp + 0x48]
movups xmmword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0x78]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0xa0]
mov dword [esp], eax
call fcn.004a99e0
add esp, 0x20
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov ebx, dword [ebp + 8]
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
cmp ecx, 0xb
jae 0x4a8bac
mov eax, ecx
add al, cl
mov byte [ebx], al
mov edi, ebx
inc edi
test ecx, ecx
jne 0x4a8bd4
jmp 0x4a8be3
mov ebx, ecx
or ebx, 0xf
lea eax, [ebx + 1]
push eax
mov edi, ecx
call fcn.00420cd0
mov ecx, edi
add esp, 4
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 8], edi
add ebx, 2
mov dword [eax], ebx
mov ebx, dword [ebp + 8]
mov dword [ebx + 4], ecx
push ecx
push esi
push edi
mov esi, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, esi
add esp, 0xc
mov byte [edi + ecx], 0
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0x90]
cmp eax, ecx
je 0x4a8c02
push eax
call fcn.00420e70
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test ebx, ebx
js 0x4a8c32
and edx, 0xf
mov ebx, dword [ebp + 8]
fldz
je 0x4a94b8
fstp st(0)
fld xword [ecx]
fld st(0)
fstp xword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
jmp 0x4a8c5c
test edx, edx
mov ebx, dword [ebp + 8]
fldz
jle 0x4a94b8
fstp st(0)
fld xword [ecx]
fld st(0)
fstp xword [esp + 0x48]
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x4a94b8
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
dec edx
cmp edx, 0xe
ja case.0x4a8c66.5
jmp dword [edx*4 + 0x590760]
fstp st(0)
lea esi, [esp + 0x80]
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x87], 0
mov edx, ecx
neg ecx
cmovs ecx, edx
mov eax, ecx
or eax, 1
bsr eax, eax
movzx eax, word [eax + eax + 0x591990]
cmp ecx, dword [eax*4 + 0x590d78]
sbb eax, 0
mov ebx, esi
test edx, edx
jns 0x4a8ccf
lea esi, [esp + 0x81]
mov byte [esp + 0x80], 0x2d
mov ebx, esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
add ebx, eax
cmp ecx, 0x64
mov dword [esp + 4], ebx
jb 0x4a920d
mov edi, 0x51eb851f
mov esi, ebx
nop dword [eax]
mov eax, ecx
mul edi
shr edx, 5
imul eax, edx, 0x64
mov ebx, ecx
sub ebx, eax
movzx eax, word [ebx + ebx + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x4a8cf0
jmp 0x4a9211
fstp st(0)
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x87], 0
mov eax, ecx
or eax, 1
bsr eax, eax
movzx eax, word [eax + eax + 0x591990]
cmp ecx, dword [eax*4 + 0x590d78]
sbb eax, 0
mov dword [esp + 4], eax
lea esi, [esp + eax]
add esi, 0x80
cmp ecx, 0x64
jb 0x4a9225
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x4a8d70
jmp 0x4a9227
fstp st(0)
lea ebx, [esp + 0x80]
xorps xmm0, xmm0
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
mov eax, esi
sar eax, 0x1f
mov edi, esi
xor edi, eax
xor ecx, eax
sub ecx, eax
sbb edi, eax
mov eax, ecx
or eax, 1
mov edx, ecx
bsr ecx, edi
xor ecx, 0x1f
bsr eax, eax
xor eax, 0x1f
or eax, 0x20
test edi, edi
cmovne eax, ecx
mov ecx, edx
xor eax, 0x3f
movzx edx, word [eax + eax + 0x591990]
cmp ecx, dword [edx*8 + 0x590da8]
mov eax, edi
sbb eax, dword [edx*8 + 0x590dac]
mov eax, ebx
sbb edx, 0
test esi, esi
jns 0x4a8e21
lea eax, [esp + 0x81]
mov byte [esp + 0x80], 0x2d
mov ebx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
add ebx, edx
cmp ecx, 0x64
mov eax, edi
sbb eax, 0
mov dword [esp + 8], ebx
jb 0x4a923b
mov esi, ebx
nop
mov dword [esp + 0xc], edi
lea eax, [esi - 2]
mov dword [esp + 4], eax
push 0
push 0x64
push edi
push ecx
mov edi, ecx
call fcn.004a5b80
add esp, 0x10
imul ecx, eax, 0x64
mov ebx, edi
sub ebx, ecx
mov ecx, 0x270f
cmp ecx, edi
mov ecx, 0
sbb ecx, dword [esp + 0xc]
movzx ecx, word [ebx + ebx + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov ebx, dword [esp + 4]
mov word [esi - 2], cx
mov ecx, eax
mov edi, edx
mov esi, ebx
jb 0x4a8e40
jmp 0x4a923f
fstp st(0)
xorps xmm0, xmm0
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x91], 0
mov eax, ecx
or eax, 1
mov edx, ecx
bsr ecx, esi
xor ecx, 0x1f
bsr eax, eax
xor eax, 0x1f
or eax, 0x20
test esi, esi
cmovne eax, ecx
mov ecx, edx
xor eax, 0x3f
movzx edx, word [eax + eax + 0x591990]
cmp ecx, dword [edx*8 + 0x590da8]
mov eax, esi
sbb eax, dword [edx*8 + 0x590dac]
mov dword [esp + 0x8d], 0
sbb edx, 0
mov dword [esp + 8], edx
lea edi, [esp + edx]
add edi, 0x80
cmp ecx, 0x64
mov eax, esi
sbb eax, 0
jb 0x4a925a
nop dword [eax + eax]
mov dword [esp + 0xc], esi
lea eax, [edi - 2]
mov dword [esp + 4], eax
push 0
push 0x64
push esi
push ecx
mov esi, ecx
call fcn.004a5b80
add esp, 0x10
imul ecx, eax, 0x64
mov ebx, esi
sub ebx, ecx
mov ecx, 0x270f
cmp ecx, esi
mov ecx, 0
sbb ecx, dword [esp + 0xc]
movzx ecx, word [ebx + ebx + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov ebx, dword [esp + 4]
mov word [edi - 2], cx
mov ecx, eax
mov esi, edx
mov edi, ebx
jb 0x4a8f10
jmp 0x4a9260
fstp st(0)
xor edx, edx
test cl, cl
sete dl
mov ecx, 0x590bcf
mov eax, 0x590bca
cmove eax, ecx
lea ecx, [edx + 4]
mov esi, edx
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov edx, ecx
add dl, cl
mov byte [ebx], dl
lea edx, [ebx + 1]
push ecx
push eax
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov byte [esi + ebx + 5], 0
jmp 0x4a8c02
fstp st(0)
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov byte [ebx], 2
mov byte [ebx + 1], cl
jmp 0x4a8c02
fstp st(0)
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x80]
push ecx
push eax
call fcn.004ae100
add esp, 8
jmp 0x4a8c02
fstp st(0)
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x80]
push esi
push ecx
push eax
call fcn.004af230
add esp, 0xc
jmp 0x4a8c02
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x88], 0x200000
mov word [esp + 0x8c], 0
mov byte [esp + 0x8e], 1
mov dword [esp + 0x10], 0
sub esp, 0x24
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
movups xmm0, xmmword [esp + 0xa4]
movups xmmword [esp + 0x10], xmm0
mov eax, dword [esp + 0x84]
mov dword [esp], eax
fstp xword [esp + 4]
call fcn.004b01f0
add esp, 0x24
jmp 0x4a8c02
fstp st(0)
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x80]
push ecx
push eax
call fcn.004b1270
add esp, 8
jmp 0x4a8c02
fstp st(0)
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov edi, esi
mov esi, ecx
mov ecx, ebx
push 0
push edi
call fcn.004244f0
test edi, edi
je 0x4a8c02
mov ecx, esi
mov edx, edi
test byte [ebx], 1
je 0x4a94a5
mov eax, dword [ebx + 8]
jmp 0x4a94a8
fstp st(0)
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov esi, 1
mov edi, ecx
mov eax, ecx
nop dword [eax]
shr eax, 4
inc esi
cmp ecx, 0xf
mov ecx, eax
ja 0x4a9150
lea eax, [esi + 1]
mov ecx, ebx
push 0
push eax
call fcn.004244f0
test byte [ebx], 1
je 0x4a927b
mov eax, dword [ebx + 8]
jmp 0x4a927e
fstp st(0)
lea eax, [esp + 0x88]
push 0x200
push 0
push eax
mov edi, esi
mov esi, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov dword [esp + 0x80], 0x591ac8
lea eax, [esp + 0x90]
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], 0x1f4
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x70], xmm0
lea eax, [esp + 0x80]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
lea ecx, [esp + 0x10]
push eax
push ecx
push esi
call edi
add esp, 0xc
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
jmp 0x4a8b84
mov esi, ebx
mov edx, ecx
cmp edx, 9
ja 0x4a92ae
add dl, 0x30
mov byte [esi - 1], dl
jmp 0x4a92ba
mov edx, ecx
cmp edx, 9
ja 0x4a92fe
add dl, 0x30
mov byte [esi - 1], dl
jmp 0x4a930a
mov eax, ecx
mov edx, edi
xor ecx, ecx
mov esi, 9
cmp esi, eax
sbb ecx, edx
jb 0x4a934b
add al, 0x30
mov byte [ebx - 1], al
jmp 0x4a9357
mov ebx, edi
mov eax, ecx
mov edx, esi
xor ecx, ecx
mov edi, 9
cmp edi, eax
sbb ecx, edx
jb 0x4a939b
add al, 0x30
mov byte [ebx - 1], al
jmp 0x4a93a7
mov eax, ebx
inc eax
mov ecx, edi
mov word [eax], 0x7830
add esi, eax
mov eax, edi
nop dword [eax]
mov edx, ecx
and ecx, 0xf
movzx ecx, byte [ecx + 0x59183c]
mov byte [esi], cl
shr eax, 4
dec esi
cmp edx, 0x10
mov ecx, eax
jae 0x4a9290
jmp 0x4a8c02
movzx eax, word [edx + edx + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov word [esi - 2], ax
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 4]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
lea ecx, [esp + 0x80]
sub ebx, ecx
cmp ebx, 0xfffffff0
jae 0x4a94ed
cmp ebx, 0xa
ja 0x4a93ea
add bl, bl
mov byte [eax], bl
mov ebx, eax
mov edi, eax
inc edi
jmp 0x4a9411
movzx eax, word [edx + edx + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov word [esi - 2], ax
mov ecx, dword [esp + 4]
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
cmp ecx, 0xfffffff0
jae 0x4a94f5
cmp ecx, 0xb
jb 0x4a93d4
mov esi, ecx
or esi, 0xf
lea eax, [esi + 1]
push eax
call fcn.00420cd0
mov ecx, dword [esp + 8]
jmp 0x4a9477
movzx eax, word [eax + eax + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov word [ebx - 2], ax
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 8]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
lea ecx, [esp + 0x80]
sub ebx, ecx
cmp ebx, 0xfffffff0
jae 0x4a94ed
cmp ebx, 0xa
ja 0x4a9427
add bl, bl
mov byte [eax], bl
mov ebx, eax
mov edi, eax
inc edi
jmp 0x4a944e
movzx eax, word [eax + eax + str.000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789abcdef]
mov word [ebx - 2], ax
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 8]
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
cmp ecx, 0xfffffff0
jae 0x4a94f5
cmp ecx, 0xb
jae 0x4a9465
mov eax, ecx
add al, cl
mov byte [ebx], al
mov edi, ebx
inc edi
test ecx, ecx
jne 0x4a9487
jmp 0x4a949d
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
mov edi, ecx
call fcn.00420cd0
mov ecx, edi
add esp, 4
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 8], edi
add esi, 2
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, eax
cmp ecx, dword [esp + 4]
je 0x4a949d
mov eax, dword [esp + 8]
sub eax, ecx
mov esi, dword [esp + 0xc]
jmp 0x4a945e
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
mov edi, ecx
call fcn.00420cd0
mov ecx, edi
add esp, 4
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 8], edi
add esi, 2
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, eax
cmp ecx, dword [esp + 8]
je 0x4a949d
mov eax, dword [esp + 0x1c]
sub eax, ecx
mov esi, dword [esp + 0x20]
add esi, eax
push esi
push ecx
push edi
jmp 0x4a9493
mov esi, ecx
or esi, 0xf
lea eax, [esi + 1]
push eax
call fcn.00420cd0
mov ecx, dword [esp + 0xc]
add esp, 4
mov edi, eax
mov dword [ebx + 8], eax
add esi, 2
mov dword [ebx], esi
mov dword [ebx + 4], ecx
lea eax, [esp + 0x80]
push ecx
push eax
push edi
mov esi, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add edi, esi
mov byte [edi], 0
jmp 0x4a8c02
mov eax, ebx
inc eax
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
jmp 0x4a8c02
fstp st(0)
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 0x10], 0x590abc
mov dword [esp + 0xc], 0xab1
mov dword [esp + 8], str.external_fmtlib_include_fmt_format_inl.h
call fcn.004a8080
add esp, 0x14
call fcn.0049aa70
mov ecx, dword [ebp + 8]
call fcn.00423df0
mov ecx, ebx
call fcn.00423df0
fstp st(0)
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 8], 0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 0x10], 0x590abc
mov dword [esp + 0xc], 0x7d7
mov dword [esp + 8], str.external_fmtlib_include_fmt_format.h
jmp 0x4a94e0