Function at 0x572b90
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.004c5590
mov ebx, eax
mov esi, edx
add ebx, ebp
adc esi, dword [esp + 0x34]
mov ecx, edi
mov byte [esp + 0x68], 0
call fcn.004c5590
cmp edx, esi
jg 0x573334
jl 0x572bd1
cmp eax, ebx
jae 0x573334
cmp byte [esp + 0x68], 0xb3
je 0x572c0e
mov eax, dword [esp + 0x34]
push eax
push ebp
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
call fcn.00572170
test al, al
je 0x573334
mov ecx, edi
call fcn.004c5590
cmp edx, esi
jl 0x572bd1
jg 0x572c03
cmp eax, ebx
jb 0x572bd1
cmp byte [esp + 0x68], 0xb3
jne 0x573334
mov ecx, edi
call fcn.004c5590
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.004c55b0
mov esi, dword [esp + 0x64]
push 0
push 0xc
mov ecx, edi
mov word [esi], ax
call fcn.004c55b0
push 0
push 4
mov ecx, edi
mov word [esi + 2], ax
call fcn.004c55b0
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.004c55b0
mov eax, dword [eax*4 + 0x647388]
push 0
push 0x12
mov ecx, edi
mov dword [esi + 5], eax
call fcn.004c55b0
push 0
push 1
mov ecx, edi
mov dword [esi + 9], eax
call fcn.004c55b0
cmp eax, 1
jne 0x573334
test edx, edx
jne 0x573334
push edx
push 0xa
mov ecx, edi
call fcn.004c55b0
push 0
push 1
mov ecx, edi
mov dword [esi + 0xd], eax
call fcn.004c55b0
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.004c55b0
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 0x572cfd
xor ebp, ebp
push 0
push 8
mov ecx, edi
call fcn.004c55b0
mov byte [esi + ebp + 0x12], al
add ebp, 1
cmp ebp, 0x40
jb 0x572ce6
push 0
push 1
mov ecx, edi
call fcn.004c55b0
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 0x572d37
xor ebp, ebp
nop
push 0
push 8
mov ecx, edi
call fcn.004c55b0
mov byte [esi + ebp + 0x53], al
add ebp, 1
cmp ebp, 0x40
jb 0x572d20
mov ecx, edi
call fcn.004c5590
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 + 0x647348]
fadd qword [0x5edbe0]
call fcn.00472660
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.00572170
test al, al
je 0x573015
cmp byte [esp + 0x68], 0xb5
jne 0x573015
mov ecx, edi
call fcn.004c5590
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.004c55b0
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.004c55b0
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.004c55b0
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.004c55b0
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.004c55b0
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.004c55b0
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.004c55b0
push 0
shl ax, 0xc
or word [esi], ax
push 2
mov ecx, edi
call fcn.004c55b0
push 0
shl ax, 0xc
or word [esi + 2], ax
push 0xc
mov ecx, edi
call fcn.004c55b0
shl eax, 0x12
or dword [esi + 9], eax
push 0
push 1
mov ecx, edi
call fcn.004c55b0
cmp eax, 1
jne 0x573334
test edx, edx
jne 0x573334
push edx
push 8
mov ecx, edi
call fcn.004c55b0
push 0
shl eax, 0xa
or dword [esi + 0xd], eax
push 1
mov ecx, edi
call fcn.004c55b0
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.004c55b0
mov ecx, dword [esi + 5]
push 0
add eax, 1
push ecx
adc edx, 0
push edx
push eax
call fcn.00473670
push 0
push 5
mov ecx, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.004c55b0
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.004737e0
mov ecx, edi
mov dword [esi + 5], eax
call fcn.004c5590
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 0x572fe7
mov edx, ecx
and edx, 0xf
cmp edx, 5
jge 0x572fee
cmp al, 1
jbe 0x572fe7
and ecx, 0xf
jmp 0x572ff3
mov ecx, 1
jmp 0x572ff3
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 0x57303e
xor eax, eax
jmp 0x573044
imul eax, eax, 0x190
mov ecx, dword [esi + 0x95]
test ecx, ecx
mov ebp, dword [esi + 0x99]
mov dword [esi + 9], eax
je 0x57306b
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 0x573057
test ebp, ebp
je 0x57308f
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 0x573328
mov ecx, dword [0x59dbb4]
mov dword [ebp], ecx
mov edx, dword [0x59dbb8]
mov dword [ebp + 4], edx
mov eax, dword [0x59dbbc]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x64]
cmp eax, 1
mov ecx, dword [0x59dbc0]
mov dword [ebp + 0xc], ecx
jne 0x5731d7
mov edx, dword [0x59dcf4]
mov dword [ebp + 0x10], edx
mov eax, dword [0x59dcf8]
mov dword [ebp + 0x14], eax
mov ecx, dword [0x59dcfc]
mov dword [ebp + 0x18], ecx
mov edx, dword [0x59dd00]
mov dword [ebp + 0x1c], edx
mov eax, dword [0x59dee4]
mov dword [ebp + 0x2c], eax
mov ecx, dword [0x59dee8]
mov dword [ebp + 0x30], ecx
mov edx, dword [0x59deec]
mov ecx, dword [esp + 0x10]
mov dword [ebp + 0x34], edx
mov eax, dword [0x59def0]
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.0044ff68
mov edx, dword [esp + 0x68]
push edx
mov ebx, eax
push 0
push ebx
call fcn.004727f0
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 + 8]
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.004c5690
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, eax
or edx, ecx
je 0x5731ce
mov edx, dword [esp + 0x10]
or edx, dword [esp + 0x14]
je 0x5731ce
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 8]
mov ecx, edi
call eax
lea eax, [esi + ebx + 0x60]
jmp 0x573300
cmp eax, 2
jne 0x573334
mov edx, dword [0x59df34]
mov dword [ebp + 0x10], edx
mov eax, dword [0x59df38]
mov dword [ebp + 0x14], eax
mov ecx, dword [0x59df3c]
mov dword [ebp + 0x18], ecx
mov edx, dword [0x59df40]
mov dword [ebp + 0x1c], edx
mov eax, dword [0x59df44]
mov dword [ebp + 0x2c], eax
mov ecx, dword [0x59df48]
mov dword [ebp + 0x30], ecx
mov edx, dword [0x59df4c]
mov ecx, dword [esp + 0x10]
mov dword [ebp + 0x34], edx
mov eax, dword [0x59df50]
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.0044ff68
mov edx, dword [esp + 0x68]
push edx
mov ebx, eax
push 0
push ebx
call fcn.004727f0
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 + 8]
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.004c5690
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, eax
or edx, ecx
je 0x5732f9
mov edx, dword [esp + 0x10]
or edx, dword [esp + 0x14]
je 0x5732f9
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 8]
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.004c5690
mov ecx, dword [esp + 0x64]
push ecx
push ebx
mov ecx, ebp
call fcn.00557de0
push ebx
call fcn.0044ff63
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