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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x58]
push ebx
push ebp
cdq
push esi
push edi
mov edi, ecx
mov ebp, eax
mov dword [esp + 0x34], edx
call fcn.00514620
mov ebx, eax
mov esi, edx
add ebx, ebp
adc esi, dword [esp + 0x34]
mov ecx, edi
mov byte [esp + 0x68], 0
call fcn.00514620
cmp edx, esi
jg 0x57af64
jl 0x57a801
cmp eax, ebx
jae 0x57af64
cmp byte [esp + 0x68], 0xb3
je 0x57a83e
mov eax, dword [esp + 0x34]
push eax
push ebp
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
call fcn.00579d50
test al, al
je 0x57af64
mov ecx, edi
call fcn.00514620
cmp edx, esi
jl 0x57a801
jg 0x57a833
cmp eax, ebx
jb 0x57a801
cmp byte [esp + 0x68], 0xb3
jne 0x57af64
mov ecx, edi
call fcn.00514620
sub eax, 4
push 0
sbb edx, 0
push 0xc
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
call fcn.00514640
mov esi, dword [esp + 0x64]
push 0
push 0xc
mov ecx, edi
mov word [esi], ax
call fcn.00514640
push 0
push 4
mov ecx, edi
mov word [esi + 2], ax
call fcn.00514640
mov dword [esp + 0x34], edx
mov dl, byte [esi + 4]
xor dl, al
push 0
and dl, 0xf
xor byte [esi + 4], dl
push 4
mov ecx, edi
call fcn.00514640
mov eax, dword [eax*4 + 0x6ee478]
push 0
push 0x12
mov ecx, edi
mov dword [esi + 5], eax
call fcn.00514640
push 0
push 1
mov ecx, edi
mov dword [esi + 9], eax
call fcn.00514640
cmp eax, 1
jne 0x57af64
test edx, edx
jne 0x57af64
push edx
push 0xa
mov ecx, edi
call fcn.00514640
push 0
push 1
mov ecx, edi
mov dword [esi + 0xd], eax
call fcn.00514640
mov cl, byte [esi + 0x11]
xor cl, al
and cl, 1
xor byte [esi + 0x11], cl
push 0
push 1
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.00514640
add al, al
xor al, byte [esi + 0x11]
mov dword [esp + 0x34], edx
and al, 2
xor byte [esi + 0x11], al
mov al, byte [esi + 0x11]
test al, 2
je 0x57a92d
xor ebp, ebp
push 0
push 8
mov ecx, edi
call fcn.00514640
mov byte [esi + ebp + 0x12], al
add ebp, 1
cmp ebp, 0x40
jb 0x57a916
push 0
push 1
mov ecx, edi
call fcn.00514640
mov dword [esp + 0x34], edx
mov dl, byte [esi + 0x52]
xor dl, al
and dl, 1
xor byte [esi + 0x52], dl
test byte [esi + 0x52], 1
je 0x57a967
xor ebp, ebp
nop
push 0
push 8
mov ecx, edi
call fcn.00514640
mov byte [esi + ebp + 0x53], al
add ebp, 1
cmp ebp, 0x40
jb 0x57a950
mov ecx, edi
call fcn.00514620
movzx ecx, byte [esi + 4]
mov ebx, eax
movzx eax, word [esi]
sub ebx, dword [esp + 0x18]
mov dword [esp + 0x64], eax
sbb edx, dword [esp + 0x1c]
and ecx, 0xf
fild dword [esp + 0x64]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edx
fdiv dword [ecx*4 + 0x6ee438]
fadd qword [0x613d10]
call fcn.005c2100
movzx edx, word [esi + 2]
xor ebp, ebp
push ebp
mov dword [esi + 0x95], eax
push 8
lea eax, [esp + 0x70]
push eax
mov ecx, edi
mov dword [esi + 0x99], edx
mov dword [esp + 0x70], 1
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
call fcn.00579d50
test al, al
je 0x57ac45
cmp byte [esp + 0x68], 0xb5
jne 0x57ac45
mov ecx, edi
call fcn.00514620
mov ebp, eax
mov ebx, edx
sub ebp, 4
push 0
sbb ebx, 0
push 4
mov ecx, edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
call fcn.00514640
movzx ecx, byte [esi + 0x93]
xor cl, al
and cl, 0xf
xor byte [esi + 0x93], cl
push 0
push 1
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.00514640
shl al, 4
xor al, byte [esi + 0x93]
push 0
and al, 0x10
xor byte [esi + 0x93], al
push 3
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.00514640
mov dword [esp + 0x34], edx
mov dl, byte [esi + 0x93]
and dl, 0x1f
shl al, 5
push 0
or dl, al
push 4
mov ecx, edi
mov byte [esi + 0x93], dl
call fcn.00514640
movzx ecx, byte [esi + 0x94]
xor cl, al
and cl, 0xf
xor byte [esi + 0x94], cl
push 0
push 1
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.00514640
shl al, 4
xor al, byte [esi + 0x94]
push 0
and al, 0x10
xor byte [esi + 0x94], al
push 2
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.00514640
shl al, 5
xor al, byte [esi + 0x94]
push 0
and al, 0x60
xor byte [esi + 0x94], al
push 2
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.00514640
push 0
shl ax, 0xc
or word [esi], ax
push 2
mov ecx, edi
call fcn.00514640
push 0
shl ax, 0xc
or word [esi + 2], ax
push 0xc
mov ecx, edi
call fcn.00514640
shl eax, 0x12
or dword [esi + 9], eax
push 0
push 1
mov ecx, edi
call fcn.00514640
cmp eax, 1
jne 0x57af64
test edx, edx
jne 0x57af64
push edx
push 8
mov ecx, edi
call fcn.00514640
push 0
shl eax, 0xa
or dword [esi + 0xd], eax
push 1
mov ecx, edi
call fcn.00514640
mov dword [esp + 0x34], edx
mov dl, byte [esi + 0x94]
and dl, 0x7f
shl al, 7
push 0
or dl, al
push 2
mov ecx, edi
mov byte [esi + 0x94], dl
call fcn.00514640
mov ecx, dword [esi + 5]
push 0
add eax, 1
push ecx
adc edx, 0
push edx
push eax
call fcn.005bf960
push 0
push 5
mov ecx, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.00514640
add eax, 1
adc edx, 0
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x38]
push edx
push eax
call fcn.005c5cc0
mov ecx, edi
mov dword [esi + 5], eax
call fcn.00514620
movzx ecx, word [esi + 2]
sub eax, ebp
mov dword [esp + 0x10], eax
movzx eax, word [esi]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x5c], ecx
movzx ecx, byte [esi + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], eax
sbb edx, ebx
mov al, cl
and al, 0xf
cmp al, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], 4
mov dword [esp + 0x44], 3
mov dword [esp + 0x48], 0x10
mov dword [esp + 0x4c], 9
mov dword [esp + 0x50], 0xdd
mov dword [esp + 0x54], 0x64
jbe 0x57ac17
mov edx, ecx
and edx, 0xf
cmp edx, 5
jge 0x57ac1e
cmp al, 1
jbe 0x57ac17
and ecx, 0xf
jmp 0x57ac23
mov ecx, 1
jmp 0x57ac23
mov ecx, 5
mov edx, dword [esp + ecx*8 + 0x30]
mov eax, dword [esp + ecx*8 + 0x34]
mov ebx, dword [esp + 0x28]
mov dword [esi + 0x95], edx
mov dword [esi + 0x99], eax
mov dword [esp + 0x64], 2
xor ebp, ebp
mov ecx, dword [esi + 5]
lea ecx, [ecx + ecx*4]
add ecx, ecx
mov eax, 0x2f684bdb
mul ecx
mov eax, dword [esi + 9]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
cmp eax, 0x3fffffff
mov dword [esi + 5], ecx
jne 0x57ac6e
xor eax, eax
jmp 0x57ac74
imul eax, eax, 0x190
mov ecx, dword [esi + 0x95]
test ecx, ecx
mov ebp, dword [esi + 0x99]
mov dword [esi + 9], eax
je 0x57ac9b
mov eax, ebp
xor edx, edx
div ecx
mov dword [esp + 0x68], ecx
mov ebp, dword [esp + 0x68]
mov ecx, edx
test ecx, ecx
jne 0x57ac87
test ebp, ebp
je 0x57acbf
mov eax, dword [esi + 0x95]
xor edx, edx
div ebp
xor edx, edx
mov dword [esi + 0x95], eax
mov eax, dword [esi + 0x99]
div ebp
mov dword [esi + 0x99], eax
mov ebp, dword [esp + 0x6c]
test ebp, ebp
je 0x57af58
mov ecx, dword [0x6144d4]
mov dword [ebp], ecx
mov edx, dword [0x6144d8]
mov dword [ebp + 4], edx
mov eax, dword [0x6144dc]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x64]
cmp eax, 1
mov ecx, dword [0x6144e0]
mov dword [ebp + 0xc], ecx
jne 0x57ae07
mov edx, dword [0x6146e4]
mov dword [ebp + 0x10], edx
mov eax, dword [0x6146e8]
mov dword [ebp + 0x14], eax
mov ecx, dword [0x6146ec]
mov dword [ebp + 0x18], ecx
mov edx, dword [0x6146f0]
mov dword [ebp + 0x1c], edx
mov eax, dword [0x614984]
mov dword [ebp + 0x2c], eax
mov ecx, dword [0x614988]
mov dword [ebp + 0x30], ecx
mov edx, dword [0x61498c]
mov ecx, dword [esp + 0x10]
mov dword [ebp + 0x34], edx
mov eax, dword [0x614990]
mov dword [ebp + 0x38], eax
lea eax, [ebx + ecx]
mov dword [esp + 0x68], eax
add eax, 0x60
push eax
mov dword [esp + 0x68], eax
call fcn.0059b05a
mov edx, dword [esp + 0x68]
push edx
mov ebx, eax
push 0
push ebx
call fcn.005c0060
mov eax, dword [esi + 9]
mov dword [ebx + 0x20], eax
mov ecx, dword [esi + 5]
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0x28
movzx edx, word [esi]
mov dword [ebx + 0x34], edx
movzx eax, word [esi + 2]
mov dword [ebx + 0x38], eax
movzx ecx, word [esi]
imul ecx, dword [esi + 0x99]
mov eax, dword [esp + 0x78]
mov dword [ebx + 0x48], ecx
movzx edx, word [esi + 2]
imul edx, dword [esi + 0x95]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x5c], eax
mov eax, dword [esp + 0x2c]
add esp, 0x10
mov dword [ebx + 0x4c], edx
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
push eax
push ecx
mov ecx, edi
call edx
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
push eax
push esi
lea ecx, [ebx + 0x60]
push ecx
mov ecx, edi
call fcn.00514720
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, eax
or edx, ecx
je 0x57adfe
mov edx, dword [esp + 0x10]
or edx, dword [esp + 0x14]
je 0x57adfe
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea eax, [esi + ebx + 0x60]
jmp 0x57af30
cmp eax, 2
jne 0x57af64
mov edx, dword [0x6149d4]
mov dword [ebp + 0x10], edx
mov eax, dword [0x6149d8]
mov dword [ebp + 0x14], eax
mov ecx, dword [0x6149dc]
mov dword [ebp + 0x18], ecx
mov edx, dword [0x6149e0]
mov dword [ebp + 0x1c], edx
mov eax, dword [0x6149e4]
mov dword [ebp + 0x2c], eax
mov ecx, dword [0x6149e8]
mov dword [ebp + 0x30], ecx
mov edx, dword [0x6149ec]
mov ecx, dword [esp + 0x10]
mov dword [ebp + 0x34], edx
mov eax, dword [0x6149f0]
mov dword [ebp + 0x38], eax
lea eax, [ebx + ecx]
mov dword [esp + 0x68], eax
add eax, 0x84
push eax
mov dword [esp + 0x68], eax
call fcn.0059b05a
mov edx, dword [esp + 0x68]
push edx
mov ebx, eax
push 0
push ebx
call fcn.005c0060
mov eax, dword [esi + 9]
mov dword [ebx + 0x20], eax
mov ecx, dword [esi + 5]
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], 0
mov edx, dword [esi + 0x95]
mov dword [ebx + 0x38], edx
mov eax, dword [esi + 0x99]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x48], 0x28
movzx ecx, word [esi]
mov dword [ebx + 0x4c], ecx
movzx edx, word [esi + 2]
mov dword [ebx + 0x50], edx
movzx eax, byte [esi + 0x93]
mov edx, dword [esp + 0x78]
shr eax, 5
mov dword [ebx + 0x78], eax
movzx ecx, byte [esi + 0x94]
and ecx, 0xf
mov dword [ebx + 0x7c], ecx
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [ebx + 0x74], edx
mov eax, dword [edi]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
push ecx
push esi
lea edx, [ebx + 0x84]
push edx
mov ecx, edi
call fcn.00514720
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, eax
or edx, ecx
je 0x57af29
mov edx, dword [esp + 0x10]
or edx, dword [esp + 0x14]
je 0x57af29
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
lea eax, [esi + ebx + 0x84]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
push eax
mov ecx, edi
call fcn.00514720
mov ecx, dword [esp + 0x64]
push ecx
push ebx
mov ecx, ebp
call fcn.00486430
push ebx
call fcn.0059b05f
add esp, 4
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x50
ret 0xc
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x50
ret 0xc