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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
xor eax, eax
mov esi, ecx
mov dword [esp + 0x10], ecx
cmp eax, dword [ecx + 0x54]
jno 0x4955ac
cmp byte [esi + 0xa4], 0
je 0x4955ac
lea ecx, [esp + 0x70]
mov edx, 0xfbd9d0
push 9
call fcn.00485960
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, eax
neg ecx
jno 0x494e76
lea ecx, [esp + 4]
lea eax, [esp + 4]
lea edx, [esp + 4]
lea edi, [esp + 4]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x140], ecx
jmp 0x494f8b
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x20], ecx
mov ch, byte [esp + 0x7c]
test ch, 1
mov byte [esp + 0x14], ch
jne 0x494f17
test edx, edx
je 0x494f17
movzx ecx, byte [esp + 0x7f]
movzx esi, word [esp + 0x7d]
shl ecx, 0x10
or esi, ecx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x20]
lea edi, [esi + edx]
jmp 0x494ec6
add esi, 2
cmp ebx, edi
cmovne ebx, esi
nop
cmp ebx, edi
mov esi, ebx
je 0x494f17
movzx ecx, byte [esi]
lea ebx, [esi + 1]
test cl, cl
jns 0x494ec0
cmp cl, 0xe0
jb 0x494eb7
cmp cl, 0xed
jne 0x494ef6
cmp ebx, edi
je 0x494f17
lea ecx, [esi + 2]
cmp ecx, edi
je 0x494f17
cmp byte [esi + 1], 0x9f
ja 0x49578d
add esi, 3
mov ebx, esi
jmp 0x494ec0
add esi, 2
cmp ebx, edi
cmove esi, ebx
xor ebx, ebx
cmp esi, edi
setne bl
add ebx, esi
cmp cl, 0xf0
jb 0x494ec0
xor ecx, ecx
cmp ebx, edi
setne cl
add ebx, ecx
jmp 0x494ec0
mov edi, dword [esp + 0x20]
mov ecx, edx
mov dword [esp + 4], eax
lea esi, [esp + 4]
lea ebx, [esp + 0x70]
shr ecx, 8
mov dword [esp + 8], edi
mov byte [esp + 0xc], dl
shr edx, 0x18
mov word [esp + 0xd], cx
mov ecx, ebx
mov byte [esp + 0xf], dl
mov edx, esi
mov dword [esp], 0x80000001
call fcn.00495990
cmp dword [esp + 0x70], 3
je 0x49551c
lea eax, [esp + 4]
lea edx, [esp + 4]
lea ecx, [esp + 4]
lea edi, [esp + 4]
mov dword [esp + 0x140], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
push ebx
call fcn.004966f0
add esp, 4
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x70]
mov edx, 0xfbd9d9
push 9
call fcn.00485960
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, eax
neg ecx
jo 0x4950a6
mov ecx, dword [esp + 0x74]
movzx edx, byte [esp + 0x7c]
mov dword [esp + 0x38], edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x78]
test dl, 1
mov byte [esp + 0x3c], dl
jne 0x495057
test ecx, ecx
je 0x495057
movzx edx, byte [esp + 0x7f]
movzx esi, word [esp + 0x7d]
shl edx, 0x10
or esi, edx
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x20]
lea edi, [esi + ecx]
jmp 0x495006
add esi, 2
cmp ebx, edi
cmovne ebx, esi
nop word [eax + eax]
cmp ebx, edi
mov esi, ebx
je 0x495057
movzx edx, byte [esi]
lea ebx, [esi + 1]
test dl, dl
jns 0x495000
cmp dl, 0xe0
jb 0x494ff2
cmp dl, 0xed
jne 0x495036
cmp ebx, edi
je 0x495057
lea edx, [esi + 2]
cmp edx, edi
je 0x495057
cmp byte [esi + 1], 0x9f
ja 0x4957fb
add esi, 3
mov ebx, esi
jmp 0x495000
add esi, 2
cmp ebx, edi
cmove esi, ebx
xor ebx, ebx
cmp esi, edi
setne bl
add ebx, esi
cmp dl, 0xf0
jb 0x495000
xor edx, edx
cmp ebx, edi
setne dl
add ebx, edx
jmp 0x495000
mov esi, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 4], eax
lea ebx, [esp + 0x70]
shr edx, 8
mov dword [esp + 8], esi
mov byte [esp + 0xc], cl
mov word [esp + 0xd], dx
mov edx, dword [esp + 0x38]
shr ecx, 0x18
mov byte [esp + 0xf], cl
mov ecx, ebx
mov dword [esp], 0x80000001
call fcn.00495990
cmp dword [esp + 0x70], 3
je 0x49551c
push ebx
call fcn.004966f0
add esp, 4
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x70]
mov edx, 0xfbd9e2
push 0xb
call fcn.00485960
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, eax
neg ecx
jo 0x4951c6
mov ecx, dword [esp + 0x74]
movzx edx, byte [esp + 0x7c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x78]
test dl, 1
mov byte [esp + 0x38], dl
jne 0x495177
test ecx, ecx
je 0x495177
movzx edx, byte [esp + 0x7f]
movzx esi, word [esp + 0x7d]
shl edx, 0x10
or esi, edx
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x20]
lea edi, [esi + ecx]
jmp 0x495126
add esi, 2
cmp ebx, edi
cmovne ebx, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebx, edi
mov esi, ebx
je 0x495177
movzx edx, byte [esi]
lea ebx, [esi + 1]
test dl, dl
jns 0x495120
cmp dl, 0xe0
jb 0x495109
cmp dl, 0xed
jne 0x495156
cmp ebx, edi
je 0x495177
lea edx, [esi + 2]
cmp edx, edi
je 0x495177
cmp byte [esi + 1], 0x9f
ja 0x495849
add esi, 3
mov ebx, esi
jmp 0x495120
add esi, 2
cmp ebx, edi
cmove esi, ebx
xor ebx, ebx
cmp esi, edi
setne bl
add ebx, esi
cmp dl, 0xf0
jb 0x495120
xor edx, edx
cmp ebx, edi
setne dl
add ebx, edx
jmp 0x495120
mov esi, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 4], eax
lea edi, [esp + 0x70]
shr edx, 8
mov dword [esp + 8], esi
mov byte [esp + 0xc], cl
mov word [esp + 0xd], dx
mov edx, dword [esp + 0x14]
shr ecx, 0x18
mov byte [esp + 0xf], cl
mov ecx, edi
mov dword [esp], 0x80000001
call fcn.00495990
cmp dword [esp + 0x70], 3
je 0x49551c
push edi
call fcn.004966f0
add esp, 4
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x70]
mov edx, 0xfbd9ed
push 0xb
call fcn.00485960
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, eax
neg ecx
jo 0x4952e6
mov ecx, dword [esp + 0x74]
movzx edx, byte [esp + 0x7c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x78]
test dl, 1
mov byte [esp + 0x14], dl
jne 0x495297
test ecx, ecx
je 0x495297
movzx edx, byte [esp + 0x7f]
movzx esi, word [esp + 0x7d]
shl edx, 0x10
or esi, edx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x20]
lea edi, [esi + ecx]
jmp 0x495246
add esi, 2
cmp ebx, edi
cmovne ebx, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebx, edi
mov esi, ebx
je 0x495297
movzx edx, byte [esi]
lea ebx, [esi + 1]
test dl, dl
jns 0x495240
cmp dl, 0xe0
jb 0x495229
cmp dl, 0xed
jne 0x495276
cmp ebx, edi
je 0x495297
lea edx, [esi + 2]
cmp edx, edi
je 0x495297
cmp byte [esi + 1], 0x9f
ja 0x495897
add esi, 3
mov ebx, esi
jmp 0x495240
add esi, 2
cmp ebx, edi
cmove esi, ebx
xor ebx, ebx
cmp esi, edi
setne bl
add ebx, esi
cmp dl, 0xf0
jb 0x495240
xor edx, edx
cmp ebx, edi
setne dl
add ebx, edx
jmp 0x495240
mov esi, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 4], eax
lea edi, [esp + 0x70]
shr edx, 8
mov dword [esp + 8], esi
mov byte [esp + 0xc], cl
mov word [esp + 0xd], dx
mov edx, dword [esp + 0x18]
shr ecx, 0x18
mov byte [esp + 0xf], cl
mov ecx, edi
mov dword [esp], 0x80000001
call fcn.00495990
cmp dword [esp + 0x70], 3
je 0x49551c
push edi
call fcn.004966f0
add esp, 4
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x70]
mov edx, 0xfbd9f8
push 0xa
call fcn.00485960
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, eax
neg ecx
jo 0x495406
mov ecx, dword [esp + 0x74]
movzx edx, byte [esp + 0x7c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x78]
test dl, 1
mov byte [esp + 0x14], dl
jne 0x4953b7
test ecx, ecx
je 0x4953b7
movzx edx, byte [esp + 0x7f]
movzx esi, word [esp + 0x7d]
shl edx, 0x10
or esi, edx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x20]
lea edi, [esi + ecx]
jmp 0x495366
add esi, 2
cmp ebx, edi
cmovne ebx, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebx, edi
mov esi, ebx
je 0x4953b7
movzx edx, byte [esi]
lea ebx, [esi + 1]
test dl, dl
jns 0x495360
cmp dl, 0xe0
jb 0x495349
cmp dl, 0xed
jne 0x495396
cmp ebx, edi
je 0x4953b7
lea edx, [esi + 2]
cmp edx, edi
je 0x4953b7
cmp byte [esi + 1], 0x9f
ja 0x4958e5
add esi, 3
mov ebx, esi
jmp 0x495360
add esi, 2
cmp ebx, edi
cmove esi, ebx
xor ebx, ebx
cmp esi, edi
setne bl
add ebx, esi
cmp dl, 0xf0
jb 0x495360
xor edx, edx
cmp ebx, edi
setne dl
add ebx, edx
jmp 0x495360
mov esi, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 4], eax
lea edi, [esp + 0x70]
shr edx, 8
mov dword [esp + 8], esi
mov byte [esp + 0xc], cl
mov word [esp + 0xd], dx
mov edx, dword [esp + 0x1c]
shr ecx, 0x18
mov byte [esp + 0xf], cl
mov ecx, edi
mov dword [esp], 0x80000001
call fcn.00495990
cmp dword [esp + 0x70], 3
je 0x49551c
push edi
call fcn.004966f0
add esp, 4
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x70]
mov edx, 0xfbda02
push 0xa
call fcn.00485960
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, eax
neg ecx
jo 0x4955ac
mov ecx, dword [esp + 0x74]
movzx edx, byte [esp + 0x7c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x78]
test dl, 1
mov byte [esp + 0x14], dl
jne 0x4954d7
test ecx, ecx
je 0x4954d7
movzx edx, byte [esp + 0x7f]
movzx esi, word [esp + 0x7d]
shl edx, 0x10
or esi, edx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x20]
lea edi, [esi + ecx]
jmp 0x495486
add esi, 2
cmp ebx, edi
cmovne ebx, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebx, edi
mov esi, ebx
je 0x4954d7
movzx edx, byte [esi]
lea ebx, [esi + 1]
test dl, dl
jns 0x495480
cmp dl, 0xe0
jb 0x495469
cmp dl, 0xed
jne 0x4954b6
cmp ebx, edi
je 0x4954d7
lea edx, [esi + 2]
cmp edx, edi
je 0x4954d7
cmp byte [esi + 1], 0x9f
ja 0x495933
add esi, 3
mov ebx, esi
jmp 0x495480
add esi, 2
cmp ebx, edi
cmove esi, ebx
xor ebx, ebx
cmp esi, edi
setne bl
add ebx, esi
cmp dl, 0xf0
jb 0x495480
xor edx, edx
cmp ebx, edi
setne dl
add ebx, edx
jmp 0x495480
mov esi, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 4], eax
lea edi, [esp + 0x70]
shr edx, 8
mov dword [esp + 8], esi
mov byte [esp + 0xc], cl
mov word [esp + 0xd], dx
mov edx, dword [esp + 0x140]
shr ecx, 0x18
mov byte [esp + 0xf], cl
mov ecx, edi
mov dword [esp], 0x80000001
call fcn.00495990
cmp dword [esp + 0x70], 3
jne 0x49577b
movsd xmm2, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
mov eax, dword [esp + 0x74]
movsd xmm0, qword [esp + 0x78]
mov esi, dword [esp + 0x10]
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x50], xmm1
movsd xmm2, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x98]
mov ecx, eax
movsd qword [esp + 0x40], xmm0
neg ecx
movsd qword [esp + 0x58], xmm2
movsd qword [esp + 0x60], xmm1
jo 0x4955ac
movsd xmm1, qword [esp + 0x48]
mov dword [esi + 0x54], eax
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x58]
movsd qword [esi + 0x60], xmm1
movsd xmm1, qword [esp + 0x50]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x70], xmm2
movsd qword [esi + 0x68], xmm1
movsd xmm1, qword [esp + 0x60]
movsd qword [esi + 0x78], xmm1
movzx eax, byte [0xfd520d]
xor ecx, ecx
mov edx, 0x90
call fcn.00494530
test eax, eax
je 0x495981
mov edi, eax
mov dword [eax], 1
mov dword [eax + 4], 1
add eax, 8
push 0x88
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esi + 0x9c]
mov ecx, dword fs:[0x2c]
movaps xmmword [esp + 0x20], xmm0
mov eax, dword [0xfd5210]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x50], 0
je 0x49563e
mov eax, dword [0xfd5210]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x64]
mov ebx, dword [eax + 0x5c]
mov esi, dword [eax + 0x58]
mov eax, dword [eax + 0x60]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
jmp 0x49568d
xorps xmm0, xmm0
lea eax, [esp + 0x70]
movaps xmmword [esp + 0x70], xmm0
push 0x10
push eax
call dword [sym.imp.bcryptprimitives.dll_ProcessPrng]
mov eax, dword [0xfd5210]
mov ecx, dword fs:[0x2c]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x14], edx
mov byte [eax + 0x50], 1
mov dword [eax + 0x64], edx
mov dword [esp + 0x1c], ecx
mov dword [eax + 0x60], ecx
mov eax, dword [0xfd5210]
mov ecx, dword fs:[0x2c]
mov edx, 0x60
mov eax, dword [ecx + eax*4]
mov ecx, esi
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x10]
add ecx, 1
movsd xmm0, qword [esi + 0x88]
mov dword [eax + 0x58], ecx
mov ecx, ebx
adc ecx, 0
mov dword [eax + 0x5c], ecx
xor ecx, ecx
movaps xmmword [esp + 0x140], xmm0
movzx eax, byte [0xfd520d]
call fcn.00494530
test eax, eax
je 0x495981
movaps xmm0, xmmword [esp + 0x140]
mov dword [eax], 1
mov dword [eax + 4], 1
mov edx, eax
movlps qword [eax + 8], xmm0
movsd xmm0, qword [0xfbd660]
mov byte [eax + 0x10], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 4
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
movsd qword [eax + 0x28], xmm0
movsd xmm0, qword [0xfbd668]
movsd qword [eax + 0x30], xmm0
mov eax, dword [esp + 0x18]
mov dword [edx + 0x3c], ebx
movaps xmm0, xmmword [esp + 0x20]
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x14]
mov dword [edx + 0x44], eax
movlps qword [edx + 0x48], xmm0
mov eax, dword [esi + 0x98]
mov dword [edx + 0x58], eax
mov eax, edi
movsd xmm0, qword [esi + 0x90]
movsd qword [edx + 0x50], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
call fcn.004966f0
add esp, 4
mov esi, dword [esp + 0x10]
jmp 0x4955ac
mov esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0x14]
mov dword [esp], eax
lea edi, [esp + 4]
lea ebx, [esp + 4]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x18]
lea edx, [esp + 4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edx
lea edx, [esp + 4]
mov dword [esp + 0x1c], edx
mov word [esp + 0xd], cx
shr ecx, 0x10
test eax, 0x7fffffff
lea eax, [esp + 4]
mov byte [esp + 0xf], cl
mov dword [esp + 0x140], eax
je 0x494f87
push esi
push 0
push dword [0xfd5200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x494f87
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
movzx ecx, byte [esp + 0x3c]
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x6c]
mov word [esp + 0xd], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0xf], cl
je 0x4950a6
push dword [esp + 4]
push 0
push dword [0xfd5200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4950a6
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
movzx ecx, byte [esp + 0x38]
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x3c]
mov word [esp + 0xd], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0xf], cl
je 0x4951c6
push dword [esp + 4]
push 0
push dword [0xfd5200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4951c6
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
movzx ecx, byte [esp + 0x14]
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x38]
mov word [esp + 0xd], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0xf], cl
je 0x4952e6
push dword [esp + 4]
push 0
push dword [0xfd5200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4952e6
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
movzx ecx, byte [esp + 0x14]
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x18]
mov word [esp + 0xd], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0xf], cl
je 0x495406
push dword [esp + 4]
push 0
push dword [0xfd5200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x495406
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
movzx ecx, byte [esp + 0x14]
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x18]
mov word [esp + 0xd], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0xf], cl
je 0x4955ac
push dword [esp + 4]
push 0
push dword [0xfd5200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4955ac
ud2