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

Disassembly:
sub esp, 0x6c
mov al, byte [0xa56209]
push ebx
push ebp
mov ebx, ecx
push esi
push edi
test al, 1
mov dword [esp + 0x38], ebx
jne 0x531ec4
mov dl, al
or eax, 0xffffffff
or ecx, 0xffffffff
mov dword [0xa56228], eax
mov eax, 1
mov dword [0xa5622c], ecx
mov ecx, eax
mov dword [0xa56230], eax
mov dword [0xa56234], ecx
xor eax, eax
or ecx, 0xffffffff
mov dword [0xa56238], eax
mov dword [0xa56240], eax
mov dword [0xa5623c], ecx
or eax, 0xffffffff
mov ecx, 1
mov dword [0xa56248], eax
mov eax, ecx
mov dword [0xa56250], eax
or eax, 0xffffffff
mov dword [0xa56244], ecx
mov dword [0xa5624c], ecx
or ecx, 0xffffffff
mov dword [0xa56258], eax
mov eax, 1
mov dword [0xa56254], ecx
xor ecx, ecx
mov dword [0xa56260], eax
or eax, 0xffffffff
mov dword [0xa5625c], ecx
mov dword [0xa56264], ecx
or ecx, 0xffffffff
mov dword [0xa56268], eax
mov eax, 1
mov dword [0xa5626c], ecx
mov ecx, eax
mov dword [0xa56270], eax
mov dword [0xa56274], ecx
xor eax, eax
or ecx, 0xffffffff
mov dword [0xa56278], eax
mov dword [0xa56280], eax
mov dword [0xa5627c], ecx
or eax, 0xffffffff
mov ecx, 1
mov dword [0xa56288], eax
mov eax, ecx
mov dword [0xa56284], ecx
mov dword [0xa5628c], ecx
mov dword [0xa56290], eax
or ecx, 0xffffffff
or eax, 0xffffffff
mov dword [0xa56294], ecx
mov dword [0xa56298], eax
or dl, 1
xor ecx, ecx
mov eax, 1
push 0x532450
mov byte [0xa56209], dl
mov dword [0xa5629c], ecx
mov dword [0xa562a0], eax
mov dword [0xa562a4], ecx
call fcn.0076df1a
add esp, 4
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x20]
lea esi, [ebx + 0x2c]
lea edi, [ebx + 0x20]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
fild dword [esp + 0x2c]
sub esp, 8
sub esp, 8
fisub dword [esp + 0x38]
fstp qword [esp + 8]
fild dword [edi + 4]
fisub dword [esi + 4]
fstp qword [esp]
call fcn.004ba120
fsub qword [0x786630]
add esp, 0x10
fmul qword [0x786628]
call fcn.0076a6b0
mov word [esp + 0x2c], ax
mov ebp, dword [esp + 0x2c]
mov ecx, dword [0x821c8c]
lea edx, [esp + 0x74]
shr ebp, 0xc
inc ebp
push edx
shr ebp, 1
push edi
and ebp, 7
call fcn.00697ec0
mov ecx, dword [0x821c8c]
lea eax, [esp + 0x6c]
push eax
push esi
call fcn.00697ec0
mov ecx, dword [ebx + 0x28]
call fcn.00697e60
mov edi, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x34]
sub edi, eax
sub edi, 2
mov dword [esp + 0x34], edi
call fcn.00697e60
mov ecx, 0xfffffffe
sub ecx, eax
mov dword [esp + 0x18], ecx
call fcn.0053b8d0
cmp dword [0xa5672c], eax
jb 0x531f82
mov eax, dword [0xa2874c]
mov byte [esp + 0x13], 1
test eax, eax
jne 0x531f87
mov byte [esp + 0x13], 0
mov al, byte [ebx + 0x4e]
mov dword [esp + 0x20], 0x3f800000
test al, al
je 0x531fba
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebx]
fld dword [ebx + 0x50]
fsub dword [ebx + 0x54]
mov dword [esp + 0x28], eax
sub eax, ecx
mov dword [esp + 0x2c], eax
fimul dword [esp + 0x2c]
fidiv dword [esp + 0x28]
fadd dword [ebx + 0x54]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fmul dword [0x7860a8]
call fcn.0076a6b0
mov dword [esp + 0x2c], eax
mov al, byte [ebx + 0x1d]
test al, al
mov byte [esp + 0x44], 0
mov byte [esp + 0x45], 0
mov byte [esp + 0x46], 0
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
mov byte [esp + 0x26], 0xff
je 0x532055
lea eax, [ebx + 0x3d]
xor ecx, ecx
mov dword [esp + 0x28], eax
mov edx, 0xff
mov cl, byte [eax]
xor eax, eax
mov al, byte [ebx + 0x3f]
mov esi, ecx
xor ecx, ecx
mov cl, byte [ebx + 0x3e]
shl eax, 1
shl esi, 1
shl ecx, 1
cmp eax, 0xff
ja 0x53201d
mov edx, eax
cmp ecx, 0xff
jbe 0x53202a
mov ecx, 0xff
cmp esi, 0xff
mov eax, 0xff
ja 0x532039
mov eax, esi
mov byte [esp + 0x14], al
mov byte [esp + 0x15], cl
mov ax, word [esp + 0x14]
mov byte [esp + 0x16], dl
mov word [esp + 0x3c], ax
mov byte [esp + 0x3e], dl
jmp 0x532088
mov al, byte [ebx + 0x3d]
lea esi, [ebx + 0x3d]
mov ecx, esi
mov dword [esp + 0x28], esi
shr al, 1
mov dx, word [ecx]
mov byte [esp + 0x3c], al
mov al, byte [ebx + 0x3f]
mov word [esp + 0x14], dx
mov dl, byte [ecx + 2]
mov cl, byte [ebx + 0x3e]
shr cl, 1
shr al, 1
mov byte [esp + 0x16], dl
mov byte [esp + 0x3d], cl
mov byte [esp + 0x3e], al
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x50], ecx
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x1c], ecx
jl 0x53236d
mov eax, ebp
and eax, ecx
mov dword [esp + 0x30], eax
jmp 0x5320da
mov eax, dword [esp + 0x30]
test eax, eax
je 0x532151
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov eax, ebp
shl eax, 4
mov ecx, dword [eax + 0xa56228]
mov edx, dword [eax + 0xa5622c]
add edi, ecx
add esi, edx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x58], esi
mov esi, dword [eax + 0xa56230]
mov eax, dword [eax + 0xa56234]
add edi, esi
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x68]
add edi, eax
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x4c]
add edi, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x50]
add edi, edx
mov edx, dword [esp + 0x5c]
add edx, esi
add ecx, eax
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
jmp 0x5321ca
test byte [esp + 0x1c], 1
mov eax, ebp
je 0x532193
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x68]
shl eax, 4
mov ecx, dword [eax + 0xa56228]
mov eax, dword [eax + 0xa56234]
add edx, ecx
add esi, eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x4c]
add edx, ecx
mov ecx, dword [esp + 0x60]
add ecx, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x60], ecx
jmp 0x5321ca
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
shl eax, 4
mov ecx, dword [eax + 0xa5622c]
mov eax, dword [eax + 0xa56230]
add edx, ecx
add esi, eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
add edx, ecx
mov ecx, dword [esp + 0x5c]
add ecx, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x50], edx
mov dword [esp + 0x5c], ecx
mov al, byte [esp + 0x13]
test al, al
je 0x532227
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov ecx, dword [0x821c7c]
push eax
push edi
lea eax, [esp + 0x44]
mov edx, dword [ecx]
push esi
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x68]
push eax
push 0x821950
call dword [edx + 0x40]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x821c7c]
push eax
push edi
mov edx, dword [ecx]
lea eax, [esp + 0x44]
push esi
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x78]
push eax
push 0x821950
call dword [edx + 0x40]
jmp 0x5322e3
mov cx, word [esp + 0x3c]
mov dl, byte [esp + 0x3e]
mov word [esp + 0x44], cx
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x24]
mov byte [esp + 0x46], dl
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.006341c0
mov esi, dword [esp + 0x46]
mov cl, byte [0x83b2d4]
mov edx, dword [esp + 0x45]
and esi, 0xff
shr esi, cl
mov ecx, dword [0x83b2d0]
mov eax, dword [esp + 0x44]
and edx, 0xff
and eax, 0xff
push 0
shl esi, cl
mov cl, byte [0x83b2dc]
shr edx, cl
mov ecx, dword [0x83b2d8]
shl edx, cl
mov cl, byte [0x83b2cc]
shr eax, cl
mov ecx, dword [0x83b2c8]
or esi, edx
shl eax, cl
mov ecx, dword [0x821c7c]
mov edx, dword [ecx]
or esi, eax
mov eax, dword [esp + 0x1c]
push eax
push edi
lea eax, [esp + 0x58]
push esi
push eax
lea eax, [esp + 0x68]
push eax
push 0x821950
call dword [edx + 0x34]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x821c7c]
push 0
push eax
mov edx, dword [ecx]
push edi
lea eax, [esp + 0x68]
push esi
push eax
lea eax, [esp + 0x78]
push eax
push 0x821950
call dword [edx + 0x34]
mov al, byte [ebx + 0x1d]
test al, al
je 0x532306
cmp dword [esp + 0x1c], 1
jne 0x532306
mov ecx, dword [esp + 0x28]
mov dx, word [ecx]
mov word [esp + 0x3c], dx
mov al, byte [ecx + 2]
mov byte [esp + 0x3e], al
jmp 0x532355
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x3d]
mov edx, dword [esp + 0x3e]
mov bl, byte [esp + 0x13]
and eax, 0xff
and ecx, 0xff
and edx, 0xff
shr eax, 1
shr ecx, 1
shr edx, 1
neg bl
sbb ebx, ebx
and ebx, 0xffffffc8
add ebx, 0x40
mov esi, ebx
cmp eax, esi
jae 0x532345
cmp ecx, esi
jae 0x532345
cmp edx, esi
jb 0x532369
mov ebx, dword [esp + 0x38]
mov byte [esp + 0x3c], al
mov byte [esp + 0x3d], cl
mov byte [esp + 0x3e], dl
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jle 0x5320d6
mov dl, byte [esp + 0x16]
mov al, byte [esp + 0x13]
test al, al
je 0x5323aa
mov eax, dword [esp + 0x18]
mov ecx, dword [0x821c7c]
push eax
mov eax, dword [esp + 0x24]
push edi
push eax
mov edx, dword [ecx]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x88]
push eax
push 0x821950
call dword [edx + 0x40]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov cx, word [esp + 0x14]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x46], dl
lea edx, [esp + 0x24]
mov word [esp + 0x44], cx
push edx
push eax
lea ecx, [esp + 0x4c]
call fcn.006341c0
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x46]
push 0
push ecx
mov cl, byte [0x83b2d4]
and esi, 0xff
shr esi, cl
mov ecx, dword [0x83b2d0]
push edi
mov edi, dword [esp + 0x51]
mov eax, dword [0x821c7c]
and edi, 0xff
shl esi, cl
mov cl, byte [0x83b2dc]
mov edx, dword [eax]
shr edi, cl
mov ecx, dword [0x83b2d8]
shl edi, cl
mov cl, byte [0x83b2cc]
or esi, edi
mov edi, dword [esp + 0x50]
and edi, 0xff
shr edi, cl
mov ecx, dword [0x83b2c8]
shl edi, cl
lea ecx, [esp + 0x78]
or esi, edi
push esi
push ecx
lea ecx, [esp + 0x88]
push ecx
push 0x821950
mov ecx, eax
call dword [edx + 0x34]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret