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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
test eax, eax
je 0x631f7bab
mov ebx, eax
mov dword [esp + 0xc], 0
mov eax, dword [eax + 0x2c]
add eax, dword [ebx + 0x34]
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x20], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call dword [ebx + 0x10]
test eax, eax
je 0x631f7a30
xor esi, esi
mov edi, 0xffffffff
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x40]
mov eax, ebx
xor ebp, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x44]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x48]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x4c]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x50]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f74a0
lea ecx, [esp + 0x54]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, dword [esp + 0x50]
cmovne esi, ebp
mov edx, eax
shr edx, 0x10
and edx, 0x1f
mov dword [esp + 0x84], edx
mov edx, eax
shr edx, 0x15
and edx, 0xf
sub edx, 1
mov dword [esp + 0x88], edx
mov edx, eax
shr edx, 0x19
add edx, 0x7bc
mov dword [esp + 0x8c], edx
mov edx, eax
shr edx, 0xb
and edx, 0x1f
mov dword [esp + 0x80], edx
mov edx, eax
and eax, 0x1f
shr edx, 5
add eax, eax
and edx, 0x3f
mov dword [esp + 0x78], eax
mov eax, ebx
mov dword [esp + 0x7c], edx
mov edx, dword [ebx + 0x20]
call fcn.631f74a0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x58]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f74a0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x5c]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f74a0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x60]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x64]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x68]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x6c]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x70]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f73d0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x74]
test eax, eax
mov eax, 0xffffffff
cmovne edi, eax
mov eax, ebx
cmovne esi, ebp
call fcn.631f74a0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x38]
test eax, eax
mov eax, ebx
jne 0x631f79f1
call fcn.631f74a0
mov ebp, eax
test eax, eax
jne 0x631f79fe
mov eax, dword [esp + 0xb0]
mov ecx, esi
mov edx, dword [esp + 0x60]
test eax, eax
setne al
and al, cl
je 0x631f7bb5
cmp edx, dword [esp + 0xb4]
jb 0x631f7a62
mov esi, edx
sub esi, dword [esp + 0xb4]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0xb4]
test edi, edi
je 0x631f78b9
test edx, edx
jne 0x631f7b70
xor edi, edi
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
test edx, edx
mov edx, dword [esp + 0x64]
setne byte [esp + 0x2f]
test ecx, ecx
setne cl
mov esi, ecx
movzx ecx, byte [esp + 0x2f]
and cl, al
je 0x631f7be2
mov eax, dword [esp + 0x28]
cmp dword [esp + 0xbc], edx
mov edi, edx
cmovbe edi, dword [esp + 0xbc]
test eax, eax
je 0x631f7a84
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], 1
mov byte [esp + 0x28], cl
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call dword [ebx + 0x10]
mov edx, dword [esp + 0x64]
test eax, eax
jne 0x631f7b60
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x24], 0
movzx ecx, byte [esp + 0x28]
test eax, eax
jne 0x631f7a9b
mov eax, dword [esp + 0x24]
and esi, ecx
sub eax, edi
add edx, eax
mov eax, esi
test al, al
je 0x631f7ba4
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0xc4]
cmp eax, edi
jae 0x631f7981
mov edi, dword [esp + 0xc0]
mov byte [edi + eax], 0
mov edi, eax
test edx, edx
je 0x631f7ae4
mov dword [esp + 0xc], 1
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call dword [ebx + 0x10]
test eax, eax
je 0x631f7ae0
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x631f7b4e
mov edx, dword [esp + 0xc4]
test edx, edx
je 0x631f7b4e
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call dword [ebx + 4]
cmp eax, edi
jne 0x631f7b4e
jmp 0x631f79fe
call fcn.631f74a0
test eax, eax
je 0x631f7bc4
mov eax, dword [esp + 0x1c]
mov ebp, 0xffffffff
test eax, eax
setne al
xor esi, esi
and eax, esi
test al, al
je 0x631f7a20
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
xor ebp, ebp
mov dword [esi], eax
add esp, 0x9c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x3c]
mov eax, ebx
call fcn.631f74a0
mov edi, eax
test eax, eax
jne 0x631f7676
cmp dword [esp + 0x3c], 0x2014b50
sete al
mov esi, eax
mov eax, 0xffffff99
cmovne edi, eax
jmp 0x631f767d
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x28], 0
mov esi, edx
mov dword [esp + 0x24], 0
mov byte [edi + edx], 0
jmp 0x631f78a6
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x631f7951
test edx, edx
je 0x631f7951
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc], edi
mov byte [esp + 0x28], cl
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call dword [ebx + 4]
movzx ecx, byte [esp + 0x28]
cmp eax, edi
jne 0x631f79fe
mov edx, dword [esp + 0x64]
jmp 0x631f7951
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x631f7b20
xor ebp, ebp
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
test ebx, ebx
setne al
test edi, edi
je 0x631f7a0e
mov ecx, esi
test cl, cl
je 0x631f7a0e
mov ecx, 0x14
mov edi, dword [esp + 0x20]
lea esi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
jmp 0x631f7a10
mov ebp, dword [esp + 0xc4]
test ebp, ebp
je 0x631f7ae8
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call dword [ebx + 4]
cmp eax, edi
je 0x631f7ae8
add esp, 0x9c
mov ebp, 0xffffffff
pop ebx
mov eax, ebp
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
mov ebp, 0xffffffff
jmp 0x631f7a8c
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call dword [ebx + 4]
xor edx, edx
cmp eax, esi
setne dl
mov edi, edx
neg edi
cmp eax, esi
sete al
jmp 0x631f78bb
mov esi, ecx
jmp 0x631f7aea
mov ebp, 0xffffff9a
jmp 0x631f7a20
mov dword [esp + 0x28], edx
mov eax, esi
mov dword [esp + 0x24], edx
jmp 0x631f78bb
mov eax, dword [esp + 0x60]
cmp dword [esp + 0xc0], 0
mov edx, dword [esp + 0x64]
mov dword [esp + 0x24], eax
setne al
or edi, 0xffffffff
mov esi, eax
xor eax, eax
and esi, eax
add edx, dword [esp + 0x24]
mov ecx, eax
mov ebp, edi
jmp 0x631f795b