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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 8]
and byte [ebp - 4], 0
push esi
mov eax, dword [ebx + 0x5c8]
mov ecx, dword [ebx + 0x11c]
push edi
movzx eax, byte [ebx + eax + 0x4ad]
lea eax, [ecx + eax*8]
xor ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x1c], eax
je 0x571fe4
cmp dword [eax + 4], ecx
je 0x571fe4
cmp dword [ebx + 0x148], ecx
mov dword [ebp - 8], ecx
jle 0x571ceb
mov eax, dword [ebp - 8]
and byte [ebp - 2], 0
add eax, 0xac
and byte [ebp - 0x18], 0
lea ecx, [ebx + eax*4]
add eax, ecx
mov dword [ebp - 0x10], eax
mov cl, byte [eax + 4]
mov dl, cl
and cl, 0xf
shr dl, 4
mov byte [ebp - 1], dl
mov dl, byte [eax + 3]
cmp dl, 0x13
mov byte [ebp + 0xb], cl
jne 0x570add
cmp byte [ebp - 1], 0xd
jne 0x570add
mov esi, dword [ebx + 0x5b8]
movzx ecx, cl
cmp esi, ecx
jl 0x571cd7
test esi, esi
jne 0x570add
cmp byte [ebp + 0xb], 0
je 0x571cd7
mov esi, dword [ebx + 0x5b8]
test esi, esi
je 0x570b05
cmp dl, 0x13
jne 0x570b09
cmp byte [ebp - 1], 0xd
jne 0x570b09
movzx ecx, byte [ebp + 0xb]
cmp esi, ecx
je 0x570b05
cmp esi, 1
jne 0x570b09
cmp byte [ebp + 0xb], 0
jne 0x570b09
mov byte [ebp - 0x18], 1
mov ecx, dword [ebp - 8]
mov esi, dword [ebx + 0x128]
imul ecx, ecx, 0x74
add esi, ecx
mov edi, dword [esi + 0xc]
lea ecx, [esi + 0xc]
cmp edi, ecx
mov dword [ebp - 0xc], ecx
jne 0x570b44
mov ecx, 0x51b8f0
mov edi, 0x572d60
mov dword [0x572d6c], 0x572e00
mov dword [0x572d70], ecx
mov dword [0x572e54], ecx
cmp byte [ebp - 0x18], 0
je 0x57108b
cmp byte [esi + 0x20], 0x12
jne 0x570b60
cmp byte [eax + 3], 0x12
je 0x570b60
mov ecx, dword [esi + 0x2c]
add dword [esi + 0x24], ecx
mov cl, byte [eax + 3]
mov byte [esi + 0x20], cl
and dword [esi + 0x2c], 0
and dword [edi + 0x34], 0
and byte [edi + 0x1c], 0
mov cl, byte [eax]
test cl, cl
je 0x570b8b
cmp cl, 0xff
je 0x570b8b
cmp cl, 0xfe
je 0x570b8b
dec cl
mov byte [ebp - 2], 1
mov byte [esi + 0x19], cl
mov cl, byte [eax + 1]
test cl, cl
je 0x570bc8
dec cl
cmp edi, 0x572d60
mov byte [esi + 0x18], cl
jne 0x570ba3
mov byte [ebp - 2], 1
mov dl, byte [eax + 1]
movzx ecx, dl
mov ecx, dword [ebx + ecx*4 + 0x604]
test ecx, ecx
je 0x570bc8
cmp dword [ecx], 0
je 0x570bc8
push edx
push 3
push ebx
call fcn.00564001
mov eax, dword [ebp - 0x10]
add esp, 0xc
test byte [ebx + 0x5b0], 4
je 0x570be1
movzx ecx, byte [esi + 0x18]
cmp ecx, dword [ebx + 0x140]
jl 0x570be1
and byte [ebp - 2], 0
mov cl, byte [eax + 3]
mov byte [esi + 0x20], cl
mov ecx, dword [ebp - 8]
and byte [edi + 0x1c], 0
test byte [ecx + ebx + 0x154], 0x80
je 0x570bfc
and byte [ebp - 2], 0
mov cl, byte [eax + 3]
cmp cl, 7
je 0x570c1e
cmp cl, 0xc
je 0x570c1e
movzx ecx, byte [eax + 2]
dec ecx
cmp ecx, 0xc1
jl 0x570c2a
cmp ecx, 0xca
jg 0x570c2a
cmp edi, 0x572d60
mov byte [ebp - 3], 1
jne 0x570c2e
and byte [ebp - 3], 0
cmp byte [ebp - 2], 0
je 0x571075
movzx ecx, byte [esi + 0x18]
mov edx, ecx
imul edx, edx, 0x2c8
add edx, dword [ebx + 0x124]
test byte [ebx + 0x5b0], 4
mov dword [ebp - 0x14], edx
je 0x570c64
movzx ecx, byte [esi + 0x19]
movzx ecx, byte [edx + ecx*2 + 0x1d8]
jmp 0x570c65
inc ecx
test ecx, ecx
je 0x571075
dec cl
mov byte [esi + 0x1a], cl
test byte [ebx + 0x5b0], 4
je 0x570d0d
cmp byte [edx + 0x1d1], 0
je 0x570d0d
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
cmp eax, ecx
je 0x570d10
movzx ecx, byte [edx + 0x1d1]
dec ecx
je 0x570cb5
dec ecx
je 0x570cad
dec ecx
jne 0x570d06
mov cl, byte [esi + 0x18]
cmp cl, byte [eax + 0x18]
jmp 0x570cbb
mov cl, byte [esi + 0x1a]
cmp cl, byte [eax + 0x1a]
jmp 0x570cbb
mov cl, byte [esi + 0x19]
cmp cl, byte [eax + 0x19]
jne 0x570d06
movzx ecx, byte [edx + 0x1d2]
sub ecx, 0
je 0x570d02
dec ecx
je 0x570cd1
dec ecx
jne 0x570d06
jmp 0x570cee
movzx ecx, byte [eax + 0x18]
imul ecx, ecx, 0x2c8
add ecx, dword [ebx + 0x124]
mov byte [eax + 0x90], 1
test byte [edi + 0x1e], 1
jne 0x570cf7
mov byte [eax + 0x81], 1
jmp 0x570d06
test byte [ecx + 0xc0], 4
je 0x570d06
jmp 0x570cee
or byte [eax + 0x1c], 0x20
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
jne 0x570c95
mov ecx, dword [ebp - 0xc]
cmp byte [ebp - 3], 0
jne 0x570e67
mov edi, dword [ecx]
cmp edi, ecx
jne 0x570d56
push esi
push ebx
call fcn.005633d4
mov edi, eax
pop ecx
test edi, edi
pop ecx
jne 0x570dec
mov eax, 0x51b8f0
mov edi, 0x572d60
mov dword [0x572d6c], 0x572e00
mov dword [0x572d70], eax
mov dword [0x572e54], eax
jmp 0x570dec
test byte [ebx + 0x5b0], 4
je 0x570e2d
movzx eax, byte [edi + 0x18]
imul eax, eax, 0x2c8
movzx ecx, byte [edi + 0x1d]
add eax, dword [ebx + 0x124]
dec ecx
je 0x570dc2
dec ecx
je 0x570d86
dec ecx
jne 0x570dec
mov byte [edi + 0x1b], 1
jmp 0x570da0
test byte [edi + 0x1e], 1
mov byte [edi + 0x1b], 1
mov byte [edi + 0x90], 1
je 0x570da0
test byte [eax + 0xc0], 4
je 0x570da7
mov byte [edi + 0x81], 1
cmp dword [esi + 0x24], 0
jne 0x570db1
or byte [edi + 0x1c], 0x20
push esi
push ebx
call fcn.005633d4
pop ecx
test eax, eax
pop ecx
je 0x570dc8
mov edi, eax
jmp 0x570de6
mov byte [edi + 0x1b], 1
jmp 0x570da7
mov eax, 0x51b8f0
mov edi, 0x572d60
mov dword [0x572d6c], 0x572e00
mov dword [0x572d70], eax
mov dword [0x572e54], eax
mov eax, dword [esi + 0x24]
mov dword [edi + 0x24], eax
test byte [ebx + 0x5b0], 4
je 0x570e2d
and byte [edi + 0x1b], 0
mov ecx, dword [ebx + 0x124]
movzx eax, byte [esi + 0x18]
imul eax, eax, 0x2c8
mov al, byte [eax + ecx + 0x1d0]
mov byte [edi + 0x1d], al
mov ecx, dword [ebx + 0x124]
movzx eax, byte [esi + 0x18]
imul eax, eax, 0x2c8
mov al, byte [eax + ecx + 0xc0]
mov byte [edi + 0x1e], al
mov al, byte [esi + 0x1a]
mov byte [edi + 0x1a], al
mov al, byte [esi + 0x18]
mov byte [edi + 0x18], al
mov al, byte [esi + 0x19]
mov byte [edi + 0x19], al
movzx eax, byte [esi + 0x1a]
cmp eax, dword [ebx + 0x144]
jge 0x570e5d
mov ecx, dword [ebx + 0x120]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x570e5d
mov dword [edi + 0x10], eax
jmp 0x570e64
mov dword [edi + 0x10], 0x51b8f0
mov edx, dword [ebp - 0x14]
test byte [ebx + 0x5b0], 4
je 0x570e7d
movzx eax, byte [esi + 0x19]
mov al, byte [edx + eax*2 + 0x1d7]
jmp 0x570e80
mov al, byte [esi + 0x19]
mov byte [esi + 0x1b], al
test byte [ebx + 0x5b0], 8
movzx eax, al
je 0x570ecd
shl eax, 6
mov ecx, 0x1e00
sub ecx, eax
mov dword [esi + 0x1c], ecx
mov eax, dword [edi + 0x10]
push ecx
push ecx
fild dword [eax + 0x148]
fmul dword [0x4ed5ec]
fstp qword [esp]
call 0x5d32c4
fmul dword [0x4ed5e8]
pop ecx
pop ecx
fmul dword [0x4ed5e4]
call 0x5cef30
sub dword [esi + 0x1c], eax
jmp 0x570ee7
mov eax, dword [eax*4 + 0x5225ac]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x20ab
cdq
idiv dword [ecx + 0x148]
mov dword [esi + 0x1c], eax
cmp byte [ebp - 3], 0
jne 0x570fb1
and byte [esi + 0x4a], 0
and byte [esi + 0x4e], 0
mov eax, dword [esi + 0x1c]
xor edx, edx
and byte [esi + 0x5a], dl
and byte [esi + 0x41], dl
mov dword [esi + 0x54], edx
mov dword [edi + 0x20], eax
mov eax, dword [esi + 0x28]
cmp eax, 0x64
jne 0x570f18
or byte [edi + 0x1c], 0x10
jmp 0x570f1b
mov dword [edi + 0x28], eax
test byte [ebx + 0x5b0], 4
mov ecx, dword [ebp - 0x14]
je 0x570f37
mov al, byte [ecx + 0x1cf]
test al, 0x80
jne 0x570f37
movzx eax, al
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x10]
test byte [eax + 0x138], 0x80
je 0x570f4f
mov eax, dword [eax + 0x138]
and eax, 0x7f
mov dword [edi + 0x28], eax
test byte [ebx + 0x5b0], 4
je 0x570f9e
movzx edx, byte [ecx + 0x1d4]
movzx eax, byte [esi + 0x19]
movzx ecx, byte [ecx + 0x1d3]
sub eax, edx
push 8
imul eax, ecx
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x14]
add dword [edi + 0x28], eax
mov eax, dword [edi + 0x10]
movzx ecx, byte [ecx + 0x1ce]
movzx eax, byte [eax + 0x145]
imul eax, ecx
cdq
mov ecx, 0x80
idiv ecx
xor edx, edx
mov dword [edi + 0x38], eax
jmp 0x570fab
mov eax, dword [edi + 0x10]
movzx eax, byte [eax + 0x145]
mov dword [edi + 0x38], eax
mov byte [edi + 0x1c], 0xc
jmp 0x570fb3
xor edx, edx
mov ax, word [ebx + 0x5b0]
test al, 4
je 0x571072
cmp byte [ebp - 3], 0
je 0x570fd0
test al, 0x20
je 0x571072
and byte [edi + 0x90], 0
mov ecx, dword [ebx + 0x124]
movzx eax, byte [esi + 0x18]
imul eax, eax, 0x2c8
test byte [eax + ecx + 0xc0], 8
jne 0x571001
mov dword [edi + 0x48], 0x40
mov dword [edi + 0x40], edx
mov dword [edi + 0x3c], edx
mov dword [edi + 0x4c], edx
movzx eax, byte [esi + 0x18]
imul eax, eax, 0x2c8
mov ecx, dword [ebx + 0x124]
test byte [eax + ecx + 0x117], 8
jne 0x571027
mov dword [edi + 0x60], edx
mov dword [edi + 0x58], edx
mov dword [edi + 0x54], edx
mov dword [edi + 0x64], edx
movzx eax, byte [esi + 0x18]
imul eax, eax, 0x2c8
mov ecx, dword [ebx + 0x124]
test byte [eax + ecx + 0x16f], 8
jne 0x57104d
mov dword [edi + 0x78], edx
mov dword [edi + 0x70], edx
mov dword [edi + 0x6c], edx
mov dword [edi + 0x7c], edx
and byte [edi + 0x81], 0
and byte [edi + 0x50], 0
and byte [edi + 0x68], 0
mov dword [edi + 0x84], 0x400
mov dword [edi + 0x8c], edx
mov dword [edi + 0x88], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x57108b
cmp byte [eax + 1], 0
je 0x57108b
mov ecx, dword [ecx + 0x134]
mov dword [esi + 0x24], ecx
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx]
cmp ecx, edx
je 0x57109c
and dword [ecx + 0x30], 0
mov ecx, dword [ecx]
jmp 0x571090
or byte [edi + 0x1c], 3
cmp byte [eax + 2], 0
je 0x5710c0
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push esi
push ebx
call fcn.00570717
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov edx, 0xf0
jmp 0x5710c5
mov edx, 0xf0
test byte [ebx + 0x5b0], 4
je 0x571100
movzx ecx, byte [esi + 0x18]
imul ecx, ecx, 0x2c8
add ecx, dword [ebx + 0x124]
cmp byte [eax], 0xff
jne 0x571100
test byte [edi + 0x1e], 1
mov byte [edi + 0x90], 1
je 0x5710f9
test byte [ecx + 0xc0], 4
je 0x571100
mov byte [edi + 0x81], 1
cmp byte [eax], 0xfe
jne 0x571109
or byte [edi + 0x1c], 0x20
movzx ecx, byte [eax + 3]
dec ecx
cmp ecx, 0x19
ja 0x571cd7
jmp dword [ecx*4 + 0x45e3e9]
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x148]
jl 0x570a87
xor ecx, ecx
cmp dword [ebx + 0x148], ecx
mov dword [ebp - 8], ecx
jle 0x571fe4
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 8]
test byte [ebx + eax + 0x154], 0x80
jne 0x571fce
mov eax, dword [ebx + 0x128]
add eax, dword [ebp - 0x18]
mov esi, dword [eax + 0xc]
mov dword [ebp - 0x10], eax
add eax, 0xc
cmp esi, eax
je 0x571fce
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x10], 0
mov dword [ebp + 8], eax
jne 0x571d38
and byte [esi + 0x1c], 0xf7
test byte [ebx + 0x5b0], 4
je 0x571df7
movzx edi, byte [esi + 0x18]
imul edi, edi, 0x2c8
add edi, dword [ebx + 0x124]
test byte [esi + 0x1e], 1
je 0x571d83
cmp byte [esi + 0x50], 0
jne 0x571d6c
push edi
push esi
call fcn.00570182
pop ecx
pop ecx
jmp 0x571d83
cmp byte [esi + 0x50], 0
mov byte [esi + 0x81], 1
je 0x571d83
cmp dword [esi + 0x48], 0
jne 0x571d83
or byte [esi + 0x1c], 0x20
test byte [edi + 0x117], 1
je 0x571d9b
cmp byte [esi + 0x68], 0
jne 0x571d9b
push edi
push esi
call fcn.005702dd
pop ecx
pop ecx
test byte [edi + 0x16f], 1
je 0x571dc0
cmp byte [esi + 0x80], 0
jne 0x571dc0
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x19]
push eax
push ebx
push edi
push esi
call fcn.00570434
add esp, 0x10
cmp byte [esi + 0x81], 0
je 0x571df0
movzx ecx, word [edi + 0x1cc]
sub dword [esi + 0x84], ecx
lea eax, [esi + 0x84]
jns 0x571de1
and dword [eax], 0
cmp dword [eax], 0
je 0x571dec
or byte [esi + 0x1c], 2
jmp 0x571df0
or byte [esi + 0x1c], 0x20
push esi
call fcn.0057063f
pop ecx
mov eax, dword [esi + 0x20]
add eax, dword [esi + 0x30]
jne 0x571e03
and byte [esi + 0x1c], 0xfe
cmp byte [esi + 0x1b], 0
je 0x571e0d
xor edi, edi
jmp 0x571e19
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c]
add eax, dword [esi + 0x24]
cmp eax, dword [ebx + 0x5e8]
jge 0x571e3b
call fcn.0056315b
cmp eax, dword [ebx + 0x5e4]
jle 0x571e3b
mov byte [esi + 0x1c], 0x20
test byte [esi + 0x1c], 8
je 0x571e55
push dword [esi + 0x10]
mov eax, dword [esi + 0xc]
push dword [eax + 0xc]
call fcn.00566e78
mov dword [esi + 0x14], eax
mov dword [ebp + 8], eax
test byte [esi + 0x1c], 2
je 0x571ec5
test byte [ebx + 0x5b0], 4
je 0x571e93
add edi, dword [esi + 0x24]
mov eax, dword [ebp - 0x10]
fild dword [esi + 0x48]
mov dword [ebp - 0x1c], edi
fimul dword [ebp - 0x1c]
fimul dword [esi + 0x84]
fimul dword [esi + 0x38]
fimul dword [eax + 0x34]
fimul dword [ebx + 0x4a8]
fimul dword [ebx + 0x49c]
fmul dword [0x4ed5e0]
jmp 0x571eb7
add edi, dword [esi + 0x24]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edi
fild dword [ebp - 0x1c]
fimul dword [esi + 0x38]
fimul dword [eax + 0x34]
fimul dword [ebx + 0x4a8]
fimul dword [ebx + 0x49c]
fmul dword [0x4ed5dc]
call 0x5cef30
push eax
push dword [ebp + 8]
call fcn.0056714a
test byte [esi + 0x1c], 4
je 0x571f0d
test byte [ebx + 0x5b0], 4
je 0x571edc
mov eax, dword [esi + 0x60]
add eax, dword [esi + 0x34]
jmp 0x571edf
mov eax, dword [esi + 0x34]
add eax, dword [esi + 0x28]
shl eax, 2
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fsub dword [0x4eabe0]
fmul dword [ebx + 0x4a4]
fadd dword [0x4eabe0]
call 0x5cef30
push eax
push dword [ebp + 8]
call fcn.005672e1
pop ecx
pop ecx
test byte [esi + 0x1c], 1
je 0x571f81
mov ax, word [ebx + 0x5b0]
mov ecx, dword [esi + 0x20]
test al, 4
je 0x571f24
sub ecx, dword [esi + 0x78]
add ecx, dword [esi + 0x30]
test al, 8
mov dword [ebp - 0x14], ecx
je 0x571f62
fild dword [ebp - 0x14]
push ecx
push ecx
fsubr dword [0x4ed5d8]
fmul qword [0x4ed5d0]
fstp qword [esp]
fld qword [0x4ebe70]
push ecx
push ecx
fstp qword [esp]
call 0x5cf129
fmul qword [0x4ed5c8]
add esp, 0x10
call 0x5cef30
jmp 0x571f6a
mov eax, 0xda7600
cdq
idiv ecx
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0x90], 2
jne 0x571f78
neg eax
push eax
push dword [ebp + 8]
call fcn.00566f82
test byte [esi + 0x1c], 0x10
je 0x571f91
push 1
push dword [ebp + 8]
call fcn.0056738a
test byte [esi + 0x1c], 0x40
je 0x571fa1
push 0
push dword [ebp + 8]
call fcn.0056738a
test byte [esi + 0x1c], 0x20
je 0x571fb6
push dword [ebp + 8]
call fcn.00566ee8
mov eax, dword [esi + 0xc]
and dword [eax + 0x2c], 0
and byte [esi + 0x1c], 0
push esi
call fcn.00563506
mov esi, dword [eax]
mov eax, dword [ebp - 0x10]
pop ecx
add eax, 0xc
jmp 0x571d20
inc dword [ebp - 8]
add dword [ebp - 0x18], 0x74
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x148]
jl 0x571cfd
pop edi
pop esi
pop ebx
leave
ret