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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x134
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 5], 0
push esi
mov esi, dword [ebp + 0xc]
push edi
ja 0x5b49cc
mov dword [esi], 2
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
movzx eax, word [ebx + 0xf]
movzx ecx, word [ebx + 0xd]
push eax
lea edx, [esp + 0x104]
push edx
xor eax, eax
call fcn.004d3de0
mov edi, dword [ebp + 0x14]
push 0
push 0
push 0
lea eax, [esp + 0x10c]
call fcn.004d0d70
cmp dword [edi + 0x40], 0
je 0x5b49bb
cmp dword [edi], 0xffffffff
je 0x5b49bb
cmp dword [edi + 4], 0
jle 0x5b49bb
cmp dword [edi + 8], 0
jle 0x5b49bb
cmp dword [ebx + 0x2c], 0
jne 0x5b4a48
cmp dword [ebx + 0x70], 0
lea edx, [ebx + 0x30]
je 0x5b4a48
cmp dword [edx], 0xffffffff
je 0x5b4a48
cmp dword [edx + 4], 0
jle 0x5b4a48
cmp dword [edx + 8], 0
jle 0x5b4a48
mov ecx, edi
call fcn.004d35f0
mov dword [esi], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [ebx + 0x18]
xor edi, edi
xor ecx, ecx
cmp esi, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], edi
jne 0x5b4b65
mov ecx, dword [ebx + 0x14]
cmp ecx, edi
mov al, byte [ebx + 0x12]
mov byte [esp + 0x42], 0xff
mov byte [esp + 0x41], 0xff
mov byte [esp + 0x40], 0xff
mov byte [esp + 0x43], 0
je 0x5b4abe
movzx eax, al
cmp eax, dword [ecx + 4]
jae 0x5b4abe
lea eax, [eax + eax*2]
add eax, dword [ecx]
mov cx, word [eax]
mov al, byte [eax + 2]
mov dl, cl
mov word [esp + 0x30], cx
mov cl, byte [esp + 0x31]
mov byte [esp + 0x42], dl
mov byte [esp + 0x41], cl
mov byte [esp + 0x40], al
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x58], 0x6dbbf0
call fcn.004d1750
mov edx, dword [esp + 0x104]
mov eax, 1
sub eax, dword [esp + 0x48]
mov dword [esp + 0x98], edx
test eax, eax
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
jge 0x5b4b0f
fadd qword [0x7235b8]
fld1
mov esi, dword [ebx + 0x18]
fdivrp st(1)
xor edi, edi
test esi, esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x68], esi
fstp qword [esp + 0x50]
fldz
fstp qword [esp + 0x78]
je 0x5b50d8
test edi, edi
ja 0x5b50d8
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
jne 0x5b4c8a
mov eax, dword [esi + 0x22]
xor ecx, ecx
cmp eax, ecx
jne 0x5b4c9c
mov dword [esp + 0x4c], ecx
jmp 0x5b4caa
mov ecx, dword [esp + 0x30]
xor edi, edi
cmp ecx, edi
ja 0x5b4a76
mov edx, dword [esi + 0x22]
cmp edx, edi
jne 0x5b4b7c
mov dword [esp + 0x38], edi
jmp 0x5b4b8f
movzx eax, byte [edx + 0xb]
shr eax, 2
and eax, 7
cmp eax, 1
mov dword [esp + 0x38], eax
je 0x5b4b97
cmp ecx, edi
jne 0x5b4c67
movzx eax, word [esi + 4]
movzx ecx, word [esi + 6]
movzx edi, word [esi + 8]
movzx ebx, word [esi + 0xa]
add edi, eax
add ebx, ecx
test edx, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebx
je 0x5b4bcb
test byte [edx + 0xb], 1
jne 0x5b4c16
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x50]
test edx, edx
jle 0x5b4bfc
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x54]
test edx, edx
jle 0x5b4bfc
lea eax, [esp + 0x50]
lea ecx, [esp + 0x78]
call fcn.00556430
test al, al
je 0x5b4c45
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebx
jmp 0x5b4c52
cmp dword [esp + 0x38], 1
jne 0x5b4c45
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5b4c45
cmp eax, 1
ja 0x5b4c2f
mov eax, 1
add eax, 0xffffffff
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x78]
lea eax, [esp + 0x50]
call fcn.005c3290
jmp 0x5b4c59
lea ecx, [esp + 0x78]
lea eax, [esp + 0x50]
call fcn.005c3290
cmp dword [esp + 0x38], 1
jne 0x5b4c64
mov eax, dword [esp + 0x30]
mov dword [esp + 0x94], eax
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
jne 0x5b4c8a
mov esi, dword [esi]
add dword [esp + 0x30], 1
test esi, esi
jne 0x5b4b61
xor edi, edi
jmp 0x5b4a76
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
movzx edx, byte [eax + 0xb]
shr edx, 2
and edx, 7
mov dword [esp + 0x4c], edx
cmp edi, dword [esp + 0x48]
jb 0x5b50c3
test byte [esi + 0xc], 0x80
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x8c], eax
je 0x5b4cce
mov eax, dword [esi + 0xd]
mov dword [esp + 0x8c], eax
cmp eax, ecx
mov edx, dword [ebp + 0x18]
mov dword [edx], ecx
je 0x5b4ced
mov eax, dword [eax + 4]
add eax, 0xffffffff
lea ecx, [ecx]
add ecx, 1
mov edi, eax
shr edi, cl
test edi, edi
ja 0x5b4ce0
mov dword [edx], ecx
mov eax, dword [ebp + 0x10]
fld qword [esp + 0x78]
mov edx, dword [ebx]
fstp qword [esp + 0xe0]
fld qword [esp + 0x50]
lea ecx, [esp + 0x6c]
fmul qword [0x723578]
push ecx
push edx
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xe0]
fstp qword [esp + 0xf0]
push eax
lea ecx, [esp + 0xac]
push ecx
xor edi, edi
push esi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0xec], 0x6dbc50
call fcn.005c3320
mov eax, dword [esp + 0xa0]
cmp eax, edi
jne 0x5b50ea
mov esi, dword [esi + 0x22]
cmp esi, edi
mov byte [esp + 0x37], 0
mov byte [esp + 0x2f], 0
je 0x5b4d85
test byte [esi + 0xb], 1
je 0x5b4d80
mov dl, byte [esi + 0xe]
mov byte [esp + 0x37], dl
mov byte [esp + 0x2f], 1
jmp 0x5b4d85
mov byte [esp + 0x2f], 0
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
test al, al
jne 0x5b5112
mov esi, dword [esp + 0x68]
mov byte [esp + 0x3e], al
mov byte [esp + 0x3d], al
mov byte [esp + 0x3c], al
mov byte [esp + 0x3f], 0xff
movzx eax, word [esi + 4]
movzx edi, word [esi + 8]
movzx ecx, word [esi + 6]
mov dword [esp + 0x60], eax
movzx eax, word [esi + 0xa]
lea ebx, [eax + 7]
shr ebx, 3
imul ebx, edi
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x6c]
add ebx, ecx
mov dword [esp + 0x9c], ecx
lea ecx, [eax + 3]
shr ecx, 3
imul ecx, edi
lea edx, [eax + 1]
shr edx, 2
imul edx, edi
add ecx, ebx
add edx, ecx
mov dword [esp + 0x90], edx
mov dl, byte [esi + 0xc]
and dl, 0x40
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x74]
cmp dl, 0x40
lea edx, [eax + ecx - 1]
mov ecx, dword [ebp + 0x14]
sete byte [esp + 0x47]
xor eax, eax
lea esi, [esp + 0xa8]
mov dword [esp + 0x38], 0
mov byte [esp + 0x2e], 0
mov dword [esp + 0xfc], edx
call fcn.004d3340
mov eax, dword [esp + 0xa8]
cmp dword [esp + 0xbc], eax
jae 0x5b502d
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x38]
mov eax, edi
imul eax, edx
mov ecx, edx
neg ecx
neg eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x64], eax
jmp 0x5b4e74
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x60]
cmp esi, eax
jb 0x5b4f97
lea eax, [edi + eax - 1]
cmp esi, eax
ja 0x5b4f97
lea eax, [ecx + edx]
cmp eax, edx
jb 0x5b4f97
cmp eax, dword [esp + 0xfc]
ja 0x5b4f97
mov eax, esi
sub eax, dword [esp + 0x60]
cmp byte [esp + 0x47], 0
je 0x5b4f2a
mov edx, ecx
and edx, 7
jne 0x5b4ed2
mov edx, ecx
shr edx, 3
imul edx, edi
add edx, eax
mov eax, dword [esp + 0x9c]
mov al, byte [edx + eax]
mov byte [esp + 0x2e], al
jmp 0x5b4f45
cmp edx, 4
mov edx, ecx
jne 0x5b4eea
shr edx, 3
imul edx, edi
add edx, eax
mov al, byte [edx + ebx]
mov byte [esp + 0x2e], al
jmp 0x5b4f45
and dl, 3
cmp dl, 2
jne 0x5b4f0c
mov edx, ecx
shr edx, 2
imul edx, edi
add edx, eax
mov eax, dword [esp + 0xa4]
mov al, byte [edx + eax]
mov byte [esp + 0x2e], al
jmp 0x5b4f45
test cl, 1
je 0x5b4f41
mov edx, ecx
shr edx, 1
imul edx, edi
add edx, eax
mov eax, dword [esp + 0x90]
mov al, byte [edx + eax]
mov byte [esp + 0x2e], al
jmp 0x5b4f45
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
add esi, edx
mov al, byte [esi + eax]
mov esi, dword [esp + 0x38]
mov byte [esp + 0x2e], al
jmp 0x5b4f45
mov al, byte [esp + 0x2e]
cmp byte [esp + 0x2f], 0
je 0x5b4f52
cmp al, byte [esp + 0x37]
je 0x5b4f97
mov ecx, dword [esp + 0x8c]
test ecx, ecx
mov byte [esp + 0x3f], 0xff
je 0x5b4f7e
movzx eax, al
lea eax, [eax + eax*2]
add eax, dword [ecx]
mov cl, byte [eax]
mov byte [esp + 0x3e], cl
mov dl, byte [eax + 1]
mov byte [esp + 0x3d], dl
mov al, byte [eax + 2]
mov byte [esp + 0x3c], al
lea edx, [esp + 0x3c]
lea ecx, [esp + 0xa8]
call dword [esp + 0xd0]
mov ecx, dword [esp + 0x88]
add esi, 1
cmp esi, dword [esp + 0x98]
mov dword [esp + 0x38], esi
jne 0x5b4fbb
add dword [esp + 0x64], edi
add ecx, 1
xor esi, esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0xa8]
cmp dword [esp + 0xbc], edx
jae 0x5b502d
mov eax, dword [esp + 0xc0]
add dword [esp + 0xc4], 1
add eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xc4]
add dword [esp + 0xbc], 1
cmp edx, dword [esp + 0xac]
mov dword [esp + 0xc0], eax
jne 0x5b5019
add eax, dword [esp + 0xb0]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xa8]
cmp dword [esp + 0xbc], eax
jb 0x5b4e70
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x94], ecx
jne 0x5b5081
cmp dword [esp + 0x4c], 1
jne 0x5b5081
mov esi, dword [ebp + 8]
push 0
push 0
lea edi, [esi + 0x30]
push 0
lea eax, [esp + 0x10c]
call fcn.004d0d70
cmp dword [edi + 0x40], 0
je 0x5b5081
cmp dword [edi], 0xffffffff
je 0x5b5081
cmp dword [edi + 4], 0
jle 0x5b5081
cmp dword [edi + 8], 0
jle 0x5b5081
mov edx, dword [ebp + 0x14]
mov ecx, edi
call fcn.004d35f0
mov dword [esi + 0x2c], 0
fld qword [esp + 0x78]
mov ecx, dword [ebp + 0x10]
fadd qword [esp + 0x50]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
sub esp, 8
fst qword [esp + 0x80]
fstp qword [esp]
call eax
mov ecx, dword [esp + 0x6c]
push ecx
mov dword [esp + 0xdc], 0x70c5e4
call fcn.0069c8fa
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x6c]
mov ebx, dword [ebp + 8]
add esp, 4
mov esi, dword [esi]
add edi, 1
test esi, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x30], edi
jne 0x5b4b32
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [esp + 0x6c]
mov esi, dword [ebp + 0xc]
push edx
mov dword [esi], eax
mov dword [esp + 0xdc], 0x70c5e4
call fcn.0069c8fa
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [esp + 0x6c]
mov esi, dword [ebp + 0xc]
push eax
mov dword [esi], 1
mov dword [esp + 0xdc], 0x70c5e4
call fcn.0069c8fa
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14