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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [0x51a10c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
test esi, esi
je 0x4be755
mov edx, dword [esi]
mov eax, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
lea ebx, [esi + eax]
mov dword [esp + 0x40], 0
mov edx, dword [ebx]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0x10
cmp dword [edx - 4], ecx
jne 0x4be755
mov edx, dword [esp + 0x7c]
test edx, edx
js 0x4be6f1
add eax, dword [esp + 0x7c]
je 0x4be7a0
mov eax, dword [ecx]
mov dword [esp + 0xc], ebx
lea edx, [esp + 0x38]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], 6
call dword [eax + 0x1c]
sub esp, 0x1c
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x4be755
mov ecx, dword [esp + 0x44]
mov eax, ecx
not eax
test al, 6
je 0x4be757
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
and edx, eax
not edx
and edx, 6
je 0x4be757
and eax, 5
cmp eax, 4
je 0x4be755
test ecx, ecx
je 0x4be778
xor ebx, ebx
mov eax, dword [esp + 0x4c]
sub eax, dword [0x51a10c]
jne 0x4be7fc
add esp, 0x5c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x7c]
test eax, eax
js 0x4be7c0
add ebx, dword [esp + 0x7c]
cmp esi, ebx
jne 0x4be755
lea esi, cs:[esi]
mov ebx, dword [esp + 0x2c]
jmp 0x4be757
mov dword [esp], edi
mov dword [esp + 0x2c], ecx
call fcn.004783d0
sub esp, 4
test al, al
mov ecx, dword [esp + 0x2c]
je 0x4be6f1
jmp 0x4be757
cmp dword [esp + 0x7c], 0xfffffffe
je 0x4be755
mov eax, dword [edi]
mov dword [esp + 0xc], esi
mov ecx, edi
mov esi, dword [esp + 0x2c]
mov dword [esp + 8], ebp
mov dword [esp + 4], esi
mov esi, dword [esp + 0x7c]
mov dword [esp], esi
call dword [eax + 0x20]
not eax
sub esp, 0x10
test al, 6
jne 0x4be755
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
jmp 0x4be790
call fcn.00415d20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x7c], 0
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x80], 0
mov ebx, dword [0x51a10c]
mov dword [esp + 0xac], ebx
xor ebx, ebx
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x28], esi
cmp ecx, 1
jne 0x4be938
add eax, 0xbcd4d500
adc edx, 0xb8b1aabc
cmp ecx, eax
mov dword [esp + 0x30], eax
sbb ebx, edx
mov dword [esp + 0x34], edx
setae byte [esp + 0x2c]
cmp dword [esp + 0xd4], 6
movzx ecx, byte [esp + 0x2c]
sete al
and al, cl
mov byte [esp + 0x55], al
je 0x4be960
mov ebx, dword [edi - 0xc]
test ebx, ebx
je 0x4beb32
mov eax, dword [esp + 0x24]
mov ebp, dword [eax - 0x18]
mov eax, dword [eax - 0x10]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
test eax, eax
js 0x4bed40
lea esi, cs:[esi]
lea esi, [esi]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.00412900
mov dword [esp + 8], ebp
mov dword [esp + 4], 2
mov dword [esp], edi
call fcn.00412900
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.00412980
mov eax, 7
jmp 0x4be93d
mov eax, 3
mov edx, dword [esp + 0xac]
sub edx, dword [0x51a10c]
jne 0x4bef8d
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x28]
mov dword [esp], edi
call fcn.00412990
mov dword [esp + 0x40], eax
mov edx, eax
test eax, eax
je 0x4beb49
lea ecx, [esp + 0x90]
mov eax, edi
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov byte [esp + 0xa4], 0
call fcn.004276a0
mov edx, edi
movq xmm0, qword [esp + 0x9c]
mov ebx, eax
movzx eax, byte [esp + 0xa4]
movq qword [esp + 0x68], xmm0
mov esi, dword [esp + 0x6c]
movq qword [esp + 0x38], xmm0
mov dword [esp + 0x20], esi
mov byte [esp + 0x56], al
mov dword [esp + 0x44], eax
call fcn.004278a0
mov dword [esp], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x98], eax
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
call fcn.00412960
cmp dword [esp + 0x80], 1
sbb eax, 0
cmp ebx, esi
jae 0x4beac9
mov edi, dword [esp + 0x90]
movzx esi, byte [esp + 0xa5]
mov dword [esp + 0x1c], edi
mov edi, eax
lea esi, cs:[esi]
lea esi, [esi]
xor edx, edx
mov eax, esi
xor ebp, ebp
call fcn.004278a0
mov ecx, ebx
mov edx, eax
lea eax, [esp + 0x84]
mov dword [esp], eax
mov eax, esi
call fcn.00427960
xor edx, edx
mov ebx, eax
mov eax, esi
call fcn.004278a0
mov ecx, ebx
mov edx, eax
lea eax, [esp + 0x88]
mov dword [esp], eax
mov eax, esi
call fcn.00427960
xor edx, edx
mov ebx, eax
mov eax, esi
call fcn.004278a0
mov ecx, ebx
mov edx, eax
lea eax, [esp + 0x8c]
mov dword [esp], eax
mov eax, esi
call fcn.00427960
xor ecx, ecx
mov ebx, eax
lea esi, cs:[esi]
lea esi, [esi]
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or ebp, eax
test dl, dl
js 0x4beaa0
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x84]
cmp edi, eax
jae 0x4beb58
test byte [esp + 0xd4], 1
je 0x4beb0b
mov dword [esp + 0x1c], 0
xor ebx, ebx
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x30]
mov eax, 1
mov ebp, dword [esp + 0x34]
cmp eax, edi
mov eax, 0
sbb eax, ebp
jae 0x4bed18
mov eax, 6
jmp 0x4be93d
mov eax, dword [esp + 0xd4]
and eax, 8
jne 0x4c2d6c
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov edx, 1
cmp edx, edi
sbb eax, ebp
jb 0x4c2d6c
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.004c49c0
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x4beb78
mov eax, 8
jmp 0x4be93d
add eax, dword [esp + 0x88]
cmp edi, eax
jb 0x4beb3e
mov eax, dword [esp + 0x20]
cmp ebx, eax
jb 0x4bea30
jmp 0x4beac9
add eax, dword [esp + 0x94]
mov ebx, eax
test ebp, ebp
je 0x4beea2
mov eax, dword [esp + 0x20]
lea eax, [eax + ebp - 1]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x4beb49
mov esi, dword [esp + 0xd4]
and esi, 8
jne 0x4beeab
mov edi, dword [esp + 0x30]
mov eax, 1
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x50], 0x4d4da8
mov edx, 1
cmp eax, edi
mov eax, esi
sbb eax, ebp
jae 0x4bef48
mov eax, dword [esp + 0x38]
movq xmm2, qword [esp + 0x38]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], eax
mov eax, esi
shr eax, 3
movq qword [esp + 0x60], xmm2
xor eax, 1
and al, byte [esp + 0x2c]
and eax, edx
mov byte [esp + 0x57], al
lea esi, [esi]
mov ebx, dword [esp + 0x1c]
xor ebp, ebp
xor ecx, ecx
jmp 0x4bec20
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or ebp, eax
test dl, dl
js 0x4bec20
cmp ecx, 0x1f
ja 0x4bec4b
and edx, 0x40
je 0x4bec4b
mov eax, 1
shl eax, cl
neg eax
or ebp, eax
mov dword [esp + 0x20], ebp
mov edx, ebx
xor esi, esi
xor ecx, ecx
mov edi, ebx
lea esi, cs:[esi]
nop
movzx ebx, byte [edx]
add edx, 1
mov eax, ebx
and eax, 0x7f
shl eax, cl
add ecx, 7
or esi, eax
test bl, bl
js 0x4bec60
mov eax, edi
mov edi, ebx
mov ebx, eax
cmp ecx, 0x1f
ja 0x4bed90
and edi, 0x40
je 0x4bed90
mov eax, 1
shl eax, cl
neg eax
or esi, eax
test ebp, ebp
je 0x4bee50
cmp dword [esp + 0xd4], 2
je 0x4bed0c
test ebp, ebp
jg 0x4bedba
cmp byte [esp + 0x57], 0
jne 0x4beed0
mov eax, dword [esp + 0x4c]
mov edx, ebp
mov dword [esp + 0x2c], esi
xor edi, edi
not edx
xor ecx, ecx
mov esi, ebx
add edx, eax
lea esi, cs:[esi]
lea esi, [esi]
movzx ebx, byte [edx]
add edx, 1
mov eax, ebx
and eax, 0x7f
shl eax, cl
add ecx, 7
or edi, eax
test bl, bl
js 0x4bece0
mov ebx, esi
mov esi, dword [esp + 0x2c]
test edi, edi
je 0x4bef6c
test esi, esi
je 0x4bee75
lea eax, [ebx + esi]
mov dword [esp + 0x1c], eax
jmp 0x4bec00
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [edi - 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [edi - 0xc], ebx
mov dword [edi - 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [edi - 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [edi - 8], eax
jmp 0x4beb01
mov edi, dword [esp + 0x28]
movzx eax, byte [esp + 0x56]
lea ecx, [esp + 0x90]
mov edx, dword [esp + 0x40]
mov byte [esp + 0xa4], al
mov eax, edi
call fcn.004276a0
movzx esi, byte [esp + 0xa4]
mov edx, edi
mov eax, esi
call fcn.004278a0
mov edx, edi
mov eax, esi
call fcn.004278a0
mov edi, dword [esp + 0x24]
mov dword [edi - 0xc], eax
jmp 0x4be8f0
test ebp, ebp
je 0x4bedb0
cmp dword [esp + 0xd4], 2
jne 0x4becab
jmp 0x4bed04
mov byte [esp + 0x55], 1
jmp 0x4bed04
movzx eax, byte [esp + 0x56]
cmp al, 0xff
je 0x4bee99
and eax, 7
cmp al, 2
je 0x4bee5a
jbe 0x4beebd
cmp al, 3
je 0x4bee66
cmp al, 4
jne 0x4bef88
mov ecx, dword [esp + 0x4c]
lea eax, [ebp*8]
sub ecx, eax
lea eax, [esp + 0x8c]
mov edx, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
call fcn.00427960
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4bee34
mov edx, dword [esp + 0x50]
test edx, edx
je 0x4bed04
lea ecx, [esp + 0x7c]
call fcn.00427620
test al, al
je 0x4bed04
mov ebx, dword [esp + 0x58]
test byte [esp + 0xd4], 1
jne 0x4beae5
jmp 0x4be8f0
mov byte [esp + 0x55], 1
jmp 0x4bed0c
mov ecx, dword [esp + 0x4c]
lea eax, [ebp + ebp]
sub ecx, eax
jmp 0x4bedf5
mov ecx, dword [esp + 0x4c]
lea eax, [ebp*4]
sub ecx, eax
jmp 0x4bedf5
cmp byte [esp + 0x55], 0
mov ebx, dword [esp + 0x58]
je 0x4beb49
xor ebp, ebp
test byte [esp + 0xd4], 1
je 0x4be8f0
jmp 0x4beb49
mov ecx, dword [esp + 0x4c]
jmp 0x4bedf5
test eax, eax
jne 0x4bee84
jmp 0x4beb49
mov dword [esp + 0x50], 0x4d4d94
mov edx, 1
jmp 0x4bebcf
test al, al
je 0x4bee66
jmp 0x4c2d58
movzx eax, byte [esp + 0x56]
movq xmm3, qword [esp + 0x38]
mov dword [esp], ebp
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x50]
mov byte [esp + 0xa4], al
lea eax, [esp + 0x90]
movq qword [esp + 0x9c], xmm3
call fcn.004277a0
test al, al
jne 0x4bed04
mov ebx, dword [esp + 0x58]
test byte [esp + 0xd4], 1
jne 0x4bed18
mov esi, dword [esp + 0x30]
mov eax, 1
mov edi, dword [esp + 0x34]
cmp eax, esi
mov eax, 0
sbb eax, edi
jae 0x4be8d5
test ebp, ebp
je 0x4be8f0
jmp 0x4c2d71
mov edi, dword [esp + 0x24]
lea eax, [edi + 0x20]
test byte [edi], 1
je 0x4bef57
mov eax, dword [edi - 0x30]
mov dword [esp + 0x7c], eax
mov eax, dword [eax - 0x50]
test eax, eax
mov dword [esp + 0x50], eax
setne dl
jmp 0x4bebcf
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
test byte [esp + 0xd4], 1
jne 0x4beae5
test esi, esi
jne 0x4bef38
jmp 0x4bef1c
jmp 0x4c2d58
call fcn.00415d20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, 0x4cdd60
jmp fcn.004b5a60
mov eax, dword [esp + 0xac]
sub eax, dword [0x51a10c]
jne 0x4c2d85
call sub.msvcrt.dll_abort
call fcn.004c2e84
mov eax, dword [esp + 0xac]
sub eax, dword [0x51a10c]
jne 0x4c2d8a
call fcn.004c2e94
call fcn.00415d20
call fcn.00415d20
mov dword [esp], eax
call fcn.004be140
call fcn.004c2e84
mov dword [esp], eax
call fcn.004be140
call fcn.004be390
mov ebp, dword [eax]
test byte [ebp + 0x30], 1
je 0x4c2e23
mov ebp, dword [ebp]
lea ecx, [esp + 0x14]
mov edx, edi
xor eax, eax
call fcn.004276a0
mov edx, dword [ebp - 0x50]
mov dword [esp], ebx
mov ecx, ebp
lea eax, [esp + 0x14]
call fcn.004277a0
test al, al
jne 0x4c2e48
mov dword [esp], ebx
xor ecx, ecx
mov edx, 0x4d55e4
lea eax, [esp + 0x14]
call fcn.004277a0
test al, al
je 0x4c2e59
mov dword [esp], 4
call fcn.004be0e0
mov dword [eax], 0x4d8ee8
mov edx, dword [esp + 0x2c]
sub edx, dword [0x51a10c]
jne 0x4c2e6b
mov dword [esp + 8], 0x48dad0
mov dword [esp + 4], 0x4d55e4
mov dword [esp], eax
call fcn.004be630
add ebp, 0x50
jmp 0x4c2db4
mov eax, dword [esp + 0x2c]
sub eax, dword [0x51a10c]
jne 0x4c2e66
call fcn.004be5d0
mov dword [esp], esi
call fcn.00427ae0
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call sub.msvcrt.dll_abort
mov dword [esp], eax
call fcn.004be140
call sub.msvcrt.dll_abort
nop
nop