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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
call 0x497bb1
pop eax
mov esi, edx
cmp edx, 0x832480
mov dword [esp + 0x60], ecx
mov dword [esp + 0xc], eax
je 0x497c1a
cmp esi, 0x8324f8
je 0x497c1a
cmp esi, 0x832464
je 0x497c1a
cmp esi, 0x83249c
je 0x497c4f
cmp esi, 0x832250
je 0x497cce
mov ecx, ebx
xor eax, eax
neg ecx
and ecx, 3
lea edx, [ecx + 8]
cmp edx, ebp
jbe 0x497cfa
mov ebp, dword [esp + 0xa4]
mov edi, eax
cmp edi, ebp
jae 0x497d77
cmp byte [ebx + edi], 0
js 0x497d73
inc edi
jmp 0x497c05
lea edi, [esp + 0x14]
mov edx, esi
mov ecx, edi
call fcn.00498440
mov ecx, edi
mov edx, ebp
call fcn.0049845c
mov edi, eax
test eax, eax
je 0x497c5f
lea eax, [edx - 1]
bsr ecx, eax
xor eax, eax
dec eax
not ecx
shr eax, cl
inc eax
xor esi, esi
inc esi
cmp edx, 2
cmovae esi, eax
jmp 0x497c5f
mov ecx, ebx
mov edx, ebp
call fcn.004986fc
mov edi, eax
jmp 0x497d73
lea ecx, [esp + 0x14]
mov edx, ebp
call fcn.004985a0
cmp edi, 1
jne 0x497c7e
xor ecx, ecx
inc ecx
cmp eax, 1
jne 0x497c82
cmp esi, edx
cmovae esi, edx
jmp 0x497c82
mov ecx, eax
mov esi, edx
mov edx, 0x8338fc
call fcn.005572a7
mov ecx, esi
call fcn.0049792c
movsd xmm1, qword [esp + 0x1c]
mov dword [esp + 0x30], eax
movsd xmm0, qword [esp + 0x14]
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [esp + 0x10], edx
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x24]
movsd qword [esp + 0x40], xmm0
mov dword [esp + 0x58], eax
movsd qword [esp + 0x50], xmm1
jmp 0x497e66
xor ecx, ecx
mov eax, 0x800c000
cmp ebp, ecx
je 0x497d77
movzx edx, byte [ebx + ecx]
mov edi, ecx
test dl, dl
js 0x497d73
lea ecx, [edi + 1]
cmp edx, 0x1b
ja 0x497cd5
bt eax, edx
jae 0x497cd5
jmp 0x497d73
xor edi, edi
cmp ecx, edi
je 0x497d09
cmp byte [ebx + edi], 0
js 0x497d73
inc edi
jmp 0x497cfc
lea edx, [ebp - 8]
mov edi, 0x80808080
mov eax, ecx
mov ecx, dword [ebx + eax]
mov ebx, dword [ebx + eax + 4]
and ebx, edi
and ecx, edi
mov ebp, ebx
or ebp, ecx
jne 0x497d37
mov ebx, dword [esp + 0xa0]
add eax, 8
cmp eax, edx
jbe 0x497d13
jmp 0x497bfc
test ecx, ecx
je 0x497d51
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
bsf edi, ecx
shr edi, 3
jmp 0x497d71
mov ebp, dword [esp + 0xa4]
test ebx, ebx
je 0x497d61
bsf edi, ebx
jmp 0x497d64
push 0x20
pop edi
mov ebx, dword [esp + 0xa0]
shr edi, 3
add edi, 4
add edi, eax
cmp edi, ebp
jne 0x497d8d
mov eax, dword [esp + 0x60]
and dword [eax], 0
mov dword [eax + 4], ebx
mov dword [eax + 8], ebp
mov byte [eax + 0xc], 0
jmp 0x4983b0
lea ebx, [esp + 0x14]
mov edx, esi
mov ecx, ebx
call fcn.00498440
mov esi, edi
mov edi, ebp
mov ecx, ebx
sub edi, esi
mov edx, edi
call fcn.0049845c
cmp eax, 1
mov dword [esp], esi
setne al
add edx, esi
setb bl
or bl, al
jne 0x497dd2
lea eax, [edx - 1]
bsr ecx, eax
xor eax, eax
dec eax
not ecx
shr eax, cl
inc eax
xor ebp, ebp
inc ebp
cmp edx, 2
cmovae ebp, eax
lea ecx, [esp + 0x14]
mov edx, edi
call fcn.004985a0
mov esi, dword [esp]
cmp eax, 1
sete al
add edx, esi
setae ah
mov edi, edx
and ah, al
cmp ebp, edx
mov al, bl
cmovb edi, ebp
xor al, 1
or al, ah
test ah, ah
cmove edi, ebp
test bl, bl
movzx ecx, al
cmovne edi, edx
mov edx, 0x8338ec
call fcn.005572a7
mov ecx, edi
mov edi, esi
call fcn.0049792c
mov dword [esp + 0x10], edx
push esi
mov ebx, dword [esp + 0xa4]
push ebx
mov dword [esp + 0x38], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x14]
mov ebp, dword [esp + 0xa4]
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x50], xmm1
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x40]
mov esi, edi
lea edx, [esp + 0x14]
mov dword [esp + 0x38], 0
mov eax, dword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov dword [edx + 0x18], eax
movsd qword [edx + 0x10], xmm0
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm2
mov ecx, ebx
mov edx, ebp
push 0x83390c
mov dword [esp + 0x38], esi
push esi
call fcn.00472314
pop ecx
pop ecx
mov ebx, edx
mov edx, dword [esp + 0x30]
mov esi, eax
mov dword [esp], edi
mov ecx, edi
push 0x8339c8
push dword [esp + 0x14]
call fcn.00596326
pop ecx
pop ecx
mov dword [esp + 0x68], eax
mov edi, edx
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], edx
mov edx, ebx
mov ecx, esi
push 0x833978
mov dword [esp + 0x80], eax
push eax
call fcn.00472314
pop ecx
pop ecx
mov ebx, edx
mov edx, dword [esp + 0x68]
mov esi, eax
mov dword [esp + 0x64], ebp
mov ecx, ebp
push 0x833988
push edi
call fcn.00596326
pop ecx
pop ecx
mov dword [esp + 8], eax
movzx eax, byte [esp + 0x2c]
mov dword [esp + 4], edx
mov dl, 7
xor ebp, ebp
movzx edx, dl
mov dword [esp + 0x6c], edx
mov dl, 6
movzx edx, dl
mov ecx, dword [eax*4 + 0x498414]
mov al, 9
mov dword [esp + 0x3c], edx
mov dl, 4
movzx edi, dl
movzx eax, al
mov dl, 5
add ecx, dword [esp + 0xc]
jmp ecx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret