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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov eax, dword [edx + 0x10]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov esi, ecx
lea ecx, [esp + 0x34]
lea edx, [esp + 0x70]
mov dword [esp + 0x80], eax
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x70], xmm0
call fcn.0046aac0
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x34], 1
mov ecx, dword [esp + 0x3c]
jne 0x5be87f
movsd xmm0, qword [esp + 0x54]
movsd xmm2, qword [esp + 0x4c]
movsd xmm1, qword [esp + 0x44]
mov edx, dword [esp + 0x40]
movsd qword [esi + 0x20], xmm0
movsd qword [esi + 0x18], xmm2
movsd qword [esi + 0x10], xmm1
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
jmp 0x5bed05
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x34]
lea edx, [esp + 0x64]
mov dword [esp + 0x6c], 0
call fcn.0046ac80
cmp dword [esp + 0x34], 1
jne 0x5be917
mov eax, dword [esp + 0x39]
mov ch, byte [esp + 0x4f]
movzx ebx, word [esp + 0x4d]
mov edi, dword [esp + 0x50]
mov dl, byte [esp + 0x38]
mov cl, byte [esp + 0x48]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x3d]
mov byte [esp + 0x15], ch
mov word [esp + 0x2a], bx
mov dword [esp + 0xc4], edi
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x41]
mov dword [esp + 0xb0], eax
movzx eax, word [esp + 0x45]
mov word [esp + 0x12], ax
mov al, byte [esp + 0x47]
mov byte [esp + 0x14], al
movzx eax, word [esp + 0x49]
mov word [esp + 0xe], ax
mov al, byte [esp + 0x4b]
mov byte [esp + 0x10], al
mov al, byte [esp + 0x4c]
mov dword [esp + 0x60], eax
jmp 0x5be95e
movzx eax, byte [esp + 0x48]
cmp eax, 5
jne 0x5be942
mov edi, dword [esp + 0x40]
mov dl, 4
lea eax, [edi - 2]
cmp eax, 0x15
ja 0x5be940
mov eax, dword [esp + 0x3c]
cmp byte [eax], 0x77
mov dword [esp + 0x5c], eax
jbe 0x5beed9
jmp 0x5be953
movzx ecx, byte [esp + 0x49]
shl eax, 0x10
mov dl, 0xa
shl ecx, 0x18
lea eax, [ecx + eax + 5]
mov dword [esp + 0xac], eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x16], cl
mov ecx, 5
mov byte [esp + 0x17], dl
mov dword [esp + 0x64], 0
mov edi, eax
add edi, eax
setae bl
cmp edi, 0x10000000
setb bh
cmovae edi, ecx
add eax, eax
movzx eax, word [esp + 0x12]
cmovb edi, ecx
and bh, bl
mov word [esp + 0x34], ax
mov al, byte [esp + 0x14]
mov byte [esp + 0x36], al
movzx eax, word [esp + 0xe]
mov word [esp + 0x70], ax
mov al, byte [esp + 0x10]
mov byte [esp + 0x72], al
movzx eax, bh
mov bl, 1
mov dword [esp + 0x5c], eax
mov cl, byte [esp + 0x36]
movzx edx, word [esp + 0x34]
mov ch, byte [esp + 0x72]
movzx eax, word [esp + 0x70]
test bl, bl
mov word [esp + 0x30], dx
mov byte [esp + 0x32], cl
mov word [esp + 0x2c], ax
mov byte [esp + 0x2e], ch
je 0x5bea22
mov al, byte [esp + 0x32]
movzx ebx, word [esp + 0x2c]
mov cl, byte [esp + 0x2e]
mov dl, byte [esp + 0x17]
mov dh, byte [esp + 0x16]
mov byte [esp + 0x28], al
movzx eax, word [esp + 0x30]
mov word [esp + 0x22], bx
mov byte [esp + 0x24], cl
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0xac]
mov word [esp + 0x26], ax
jmp 0x5bec7d
mov al, byte [esp + 0x32]
mov byte [esp + 0xaa], al
movzx eax, word [esp + 0x30]
mov word [esp + 0xa8], ax
movzx eax, word [esp + 0x2c]
mov word [esp + 0xa4], ax
mov al, byte [esp + 0x2e]
mov byte [esp + 0xa6], al
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5beafa
mov ecx, dword [esp + 0x6c]
xor ebx, ebx
cmp dword [esp + 0x68], ecx
jbe 0x5beb1a
movzx edx, byte [eax + ecx]
lea ecx, [esp + 0x34]
call fcn.00469670
cmp byte [esp + 0x34], 1
jne 0x5beb24
mov al, byte [esp + 0x38]
mov dl, byte [esp + 0x47]
mov cl, byte [esp + 0x48]
movzx ebx, word [esp + 0x45]
movzx edi, word [esp + 0x49]
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x39]
mov byte [esp + 0x72], dl
mov byte [esp + 0xd], cl
mov dl, byte [esp + 0x4b]
mov cl, byte [esp + 0x4c]
mov word [esp + 0x70], bx
mov word [esp + 0x12], di
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x3d]
mov byte [esp + 0x14], dl
mov byte [esp + 0x19], cl
mov dl, byte [esp + 0x4f]
movzx ecx, word [esp + 0x4d]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x41]
mov byte [esp + 0x15], dl
mov word [esp + 0x2a], cx
mov dword [esp + 0xc0], eax
jmp 0x5bebab
mov dword [esp + 0x64], 0
mov dh, 1
mov ebx, 1
mov dword [esp + 0x5c], 1
mov edi, dword [esp + 0x6c]
jmp 0x5bec22
mov byte [esp + 0xd], 0x10
jmp 0x5bebfe
lea ecx, [esp + 0x34]
lea edx, [esp + 0x64]
call fcn.0046ac80
mov eax, dword [esp + 0x39]
mov ch, byte [esp + 0x47]
mov cl, byte [esp + 0x48]
movzx edi, word [esp + 0x49]
mov dl, byte [esp + 0x4b]
cmp dword [esp + 0x34], 1
mov dh, byte [esp + 0x38]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x3d]
mov byte [esp + 0x72], ch
mov word [esp + 0x12], di
mov byte [esp + 0x14], dl
mov byte [esp + 0xd], cl
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x41]
mov dword [esp + 0xc0], eax
movzx eax, word [esp + 0x45]
mov word [esp + 0x70], ax
jne 0x5beffe
mov byte [esp + 0x18], dh
mov al, byte [esp + 0x4c]
movzx edx, word [esp + 0x4d]
mov cl, byte [esp + 0x4f]
mov byte [esp + 0x19], al
mov word [esp + 0x2a], dx
mov byte [esp + 0x15], cl
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x6c]
mov ebx, 5
mov dword [esp + 0x64], 0
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x58]
test edi, edi
cmove eax, edi
mov edi, eax
add edi, ecx
setae dl
cmp edi, 0x10000000
setb dh
cmovae edi, ebx
add eax, ecx
cmovb edi, ebx
and dh, dl
mov ebx, 1
movzx eax, dh
mov dh, byte [esp + 0x18]
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0x72]
mov cl, byte [esp + 0x14]
mov byte [esp + 0x36], al
movzx eax, word [esp + 0x70]
mov byte [esp + 0x10], cl
mov word [esp + 0x34], ax
movzx eax, word [esp + 0x12]
mov word [esp + 0xe], ax
test ebx, ebx
mov al, byte [esp + 0x36]
movzx ecx, word [esp + 0x34]
mov dl, byte [esp + 0x10]
movzx ebx, word [esp + 0xe]
mov word [esp + 0x26], cx
mov byte [esp + 0x28], al
mov word [esp + 0x22], bx
mov byte [esp + 0x24], dl
je 0x5bed13
mov al, byte [esp + 0x19]
mov dl, dh
mov ebx, dword [esp + 0xb8]
mov dh, byte [esp + 0xd]
mov ecx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xb4], eax
movzx eax, word [esp + 0x26]
mov byte [esi + 4], dl
mov dword [esi + 5], ebx
mov bl, byte [esp + 0x15]
mov word [esp + 0x1e], ax
movzx eax, word [esp + 0x22]
mov word [esp + 0x1a], ax
mov eax, dword [esp + 0xb4]
mov dword [esi + 9], eax
mov eax, dword [esp + 0xb0]
mov dword [esi + 0xd], eax
movzx eax, word [esp + 0x1e]
mov word [esi + 0x11], ax
mov al, byte [esp + 0x28]
mov byte [esp + 0x20], al
mov al, byte [esp + 0x20]
mov byte [esi + 0x13], al
movzx eax, word [esp + 0x1a]
mov byte [esi + 0x14], dh
mov edx, dword [esp + 0xc4]
mov word [esi + 0x15], ax
mov al, byte [esp + 0x24]
mov byte [esp + 0x1c], al
mov al, byte [esp + 0x1c]
mov byte [esi + 0x17], al
mov byte [esi + 0x18], cl
movzx eax, word [esp + 0x2a]
mov ecx, dword [esp + 0x5c]
mov word [esi + 0x19], ax
mov byte [esi + 0x1b], bl
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edi
mov dword [esi], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, byte [esp + 0xaa]
cmp dword [esp + 0x64], 0
mov byte [esp + 0x9a], al
movzx eax, word [esp + 0xa8]
mov word [esp + 0x98], ax
movzx eax, word [esp + 0xa4]
mov word [esp + 0x94], ax
mov al, byte [esp + 0xa6]
mov byte [esp + 0x96], al
movzx eax, word [esp + 0x26]
mov word [esp + 0x1e], ax
mov al, byte [esp + 0x28]
mov byte [esp + 0x20], al
movzx eax, word [esp + 0x22]
mov word [esp + 0x1a], ax
mov al, byte [esp + 0x24]
mov byte [esp + 0x1c], al
mov al, byte [esp + 0x20]
mov byte [esp + 0xa2], al
movzx eax, word [esp + 0x1e]
mov word [esp + 0xa0], ax
mov al, byte [esp + 0x1c]
mov byte [esp + 0x9e], al
movzx eax, word [esp + 0x1a]
mov word [esp + 0x9c], ax
mov eax, dword [esp + 0x6c]
je 0x5bee91
mov ecx, dword [esp + 0x68]
mov bl, dh
mov edx, ecx
sub edx, eax
jne 0x5bee97
mov eax, dword [esp + 0xb8]
mov byte [esi + 4], bl
mov dword [esi + 5], eax
mov eax, dword [esp + 0xbc]
mov dword [esi + 9], eax
mov eax, dword [esp + 0xc0]
mov dword [esi + 0xd], eax
movzx eax, word [esp + 0xa0]
mov word [esi + 0x11], ax
mov al, byte [esp + 0xa2]
mov byte [esi + 0x13], al
mov al, byte [esp + 0xd]
mov byte [esi + 0x14], al
movzx eax, word [esp + 0x9c]
mov word [esi + 0x15], ax
mov al, byte [esp + 0x9e]
mov byte [esi + 0x17], al
mov al, byte [esp + 0x33]
mov byte [esi + 0x18], al
movzx eax, word [esp + 0xca]
mov word [esi + 0x19], ax
mov al, byte [esp + 0x17]
mov byte [esi + 0x1b], al
mov eax, dword [esp + 0xac]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xb4]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0xb0]
mov dword [esi + 0x24], eax
movzx eax, word [esp + 0x98]
mov word [esi + 0x28], ax
mov al, byte [esp + 0x9a]
mov byte [esi + 0x2a], al
mov al, byte [esp + 0x16]
mov byte [esi + 0x2b], al
movzx eax, word [esp + 0x94]
mov word [esi + 0x2c], ax
mov al, byte [esp + 0x96]
mov byte [esi + 0x2e], al
mov eax, dword [esp + 0x60]
mov byte [esi + 0x2f], al
xor eax, eax
mov dword [esi], eax
jmp 0x5bed0b
mov byte [esi + 4], 1
jmp 0x5beecd
cmp edx, 0x10000000
mov ebx, 5
mov edi, ecx
cmovb ebx, edx
sub edi, eax
mov edx, 8
cmovae edx, ebx
jb 0x5bf003
cmp edi, 0xfffffff
ja 0x5bf003
mov byte [esi + 4], 7
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
mov dword [esi + 0x20], 1
jmp 0x5bf010
mov ecx, dword [esp + 0x5c]
mov eax, 1
xor edx, edx
mov dword [esp + 0x60], edi
jmp 0x5beef6
xor ebx, ebx
mov edi, dword [esp + 0x60]
add eax, ebx
cmp eax, edi
jae 0x5bef26
lea ebx, [edx + eax]
cmp ebx, edi
jae 0x5beff7
movzx ebx, byte [ecx + ebx]
cmp edx, 4
jne 0x5bef13
cmp bl, 0xf
ja 0x5beff7
inc edx
test bl, bl
js 0x5beeea
mov ebx, edx
xor edx, edx
mov edi, dword [esp + 0x60]
add eax, ebx
cmp eax, edi
jb 0x5beef6
xorps xmm0, xmm0
cmp edi, 0x18
mov dword [esp + 0x83], 0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x7f], 0
jae 0x5bf01f
push edi
push dword [esp + 0x60]
lea eax, [esp + 0x78]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov al, byte [esp + 0x70]
mov cl, byte [esp + 0x86]
xor ebx, ebx
mov byte [esp + 0x33], al
movzx eax, word [esp + 0x71]
mov byte [esp + 0x10], cl
mov cl, byte [esp + 0x83]
mov word [esp + 0xca], ax
mov al, byte [esp + 0x73]
mov byte [esp + 0x16], cl
mov ecx, dword [esp + 0x7c]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xb4], eax
movzx eax, word [esp + 0x84]
mov word [esp + 0xe], ax
movzx eax, word [esp + 0x80]
movzx ecx, word [esp + 0xe]
mov word [esp + 0x12], ax
mov word [esp + 0x34], ax
mov al, byte [esp + 0x82]
mov word [esp + 0x70], cx
mov byte [esp + 0x14], al
mov byte [esp + 0x36], al
mov al, byte [esp + 0x10]
mov byte [esp + 0x72], al
jmp 0x5be9be
mov dl, 4
jmp 0x5be953
jmp 0x5beb1f
xor ebx, ebx
cmp ecx, eax
mov dword [esi + 4], edx
setb bl
mov dword [esi + 0x20], ebx
mov ecx, 1
mov dword [esi + 0x24], eax
mov dword [esi], ecx
jmp 0x5bed0b
mov ecx, edi
mov edx, 0x17
push 0x60b978
call fcn.0045ab50
add esp, 4
ud2