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

Disassembly:
sub esp, 0x29c
mov eax, dword [0x79cf48]
xor eax, esp
mov dword [esp + 0x294], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2a0]
push ebx
mov dword [esp + 0x38], eax
xor ebx, ebx
mov eax, dword [esp + 0x2ac]
push ebp
mov ebp, dword [esp + 0x2c0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2bc]
push esi
push edi
mov edi, dword [esp + 0x2d4]
mov esi, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x290], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
call fcn.0057055e
test eax, eax
jne 0x570c91
mov ecx, ebx
mov dword [esp + 0x30], ebx
cmp dword [esi], ebx
jbe 0x570c8f
test edi, edi
je 0x57078d
mov ecx, edi
call dword [0x6a630c]
call edi
test eax, eax
jne 0x570aa2
mov ecx, dword [esp + 0x30]
imul ebx, ecx, 0xc
mov eax, dword [ebx + esi + 0x3c]
test eax, eax
je 0x570aa9
cmp eax, 0x21
je 0x570aa9
cmp eax, 0x30101
je 0x570aa9
cmp eax, 0x303011b
jne 0x570957
cmp ecx, 3
jne 0x570cb8
mov ecx, dword [esp + 0x2b4]
mov edi, dword [ecx + 0x10]
mov ebp, dword [ecx + 8]
sub edi, ebp
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x14]
sbb ebx, eax
mov dword [esp + 0x14], eax
xor eax, eax
cmp eax, ebx
jne 0x570caa
mov eax, dword [esp + 0x28]
push edi
push eax
mov esi, dword [eax]
mov ecx, esi
call dword [0x6a630c]
call esi
mov esi, dword [esp + 0x40]
pop ecx
pop ecx
mov dword [esi + 8], eax
test eax, eax
jne 0x570810
test edi, edi
jne 0x570caa
add ebp, dword [esp + 0x2bc]
mov eax, dword [esp + 0x14]
adc eax, dword [esp + 0x2c0]
push eax
push ebp
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
call fcn.0056fe9c
pop ecx
pop ecx
test eax, eax
jne 0x570c91
push dword [esp + 0x18]
mov edx, dword [esi + 8]
mov ecx, ebp
push ebx
push edi
call fcn.00570475
add esp, 0xc
test eax, eax
jne 0x570c91
mov ecx, dword [esp + 0x28c]
test cl, 3
jne 0x570cb3
mov edx, dword [esp + 0x290]
test dl, 3
jne 0x570cb3
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
lea eax, [ebx + edx]
add eax, ecx
cmp eax, ebp
jne 0x570cb3
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
add eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
add eax, ecx
mov dword [esp + 0x5c], eax
mov ecx, 0x81
mov eax, dword [esi + 4]
mov dword [esp + 0x50], eax
add eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x54], eax
add eax, edi
mov dword [esp + 0x64], eax
lea edi, [esp + 0x84]
lea eax, [ebx + ebp]
mov dword [esp + 0x68], ebx
xor ebx, ebx
mov dword [esp + 0x6c], eax
mov eax, 0x4000400
mov dword [esp + 0x70], 3
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.005733e4
test eax, eax
jne 0x570c91
mov ecx, ebx
mov eax, dword [esp + ecx*4 + 0x48]
cmp eax, dword [esp + ecx*4 + 0x58]
jne 0x570cb3
inc ecx
cmp ecx, 4
jb 0x570915
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x6c]
jne 0x570cb3
cmp dword [esp + 0x70], ebx
jne 0x570cb3
cmp dword [esp + 0x80], ebx
jne 0x570cb3
mov esi, dword [esp + 0x1c]
jmp 0x570c7e
cmp ecx, 1
jne 0x570cb8
mov cl, byte [ebx + esi + 0x41]
cmp eax, 3
jne 0x5709b0
cmp cl, 1
jne 0x570cb8
xor eax, eax
push 0x100
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00640240
mov eax, dword [ebx + esi + 0x38]
mov ecx, dword [esp + 0x38]
push edi
push ebp
push dword [esp + 0x24]
movzx edx, byte [eax + ecx]
lea ecx, [esp + 0x60]
inc edx
call fcn.00573ae3
add esp, 0x18
test eax, eax
jne 0x570c91
jmp 0x570c7e
cmp eax, 0xa
jne 0x5709e3
xor eax, eax
cmp cl, 4
jne 0x5709c9
mov eax, dword [ebx + esi + 0x38]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax]
jmp 0x5709d1
test cl, cl
jne 0x570cb8
mov ecx, dword [esp + 0x10]
mov edx, ebp
push eax
call fcn.00570f5c
pop ecx
jmp 0x570c7e
test cl, cl
jne 0x570cb8
cmp eax, 0x3030103
je 0x570a62
cmp eax, 0x3030205
je 0x570a51
cmp eax, 0x3030401
je 0x570a43
cmp eax, 0x3030501
je 0x570a35
cmp eax, 0x3030701
je 0x570a27
cmp eax, 0x3030805
jne 0x570cb8
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0057109c
jmp 0x5709dd
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.005710e0
jmp 0x5709dd
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0057100f
jmp 0x5709dd
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0057116d
jmp 0x5709dd
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.00571058
jmp 0x5709dd
xor eax, eax
mov edx, ebp
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push edi
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00573286
add esp, 0xc
cmp dword [esp + 0x14], 1
jne 0x570c7e
test edi, edi
je 0x570c7e
mov ecx, edi
call dword [0x6a630c]
call edi
test eax, eax
je 0x570c7e
push 0x12
jmp 0x570cb0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, eax
mov esi, ecx
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov dword [esp + 0x34], edx
cmp dword [eax], 4
jne 0x570b7b
mov esi, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x2a0], eax
mov ebp, esi
mov eax, dword [esp + 0x44]
shl ebp, 2
mov dword [esp + 0x298], 3
mov dword [esp + 0x29c], 2
mov edi, dword [eax + esi*8]
mov edx, dword [esp + ebp + 0x298]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x34], edx
cmp esi, 2
jae 0x570b4f
xor esi, esi
cmp esi, eax
jne 0x570caa
mov eax, dword [esp + 0x28]
push edi
push eax
mov esi, dword [eax]
mov ecx, esi
call dword [0x6a630c]
call esi
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x570b35
test edi, edi
jne 0x570caa
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
sub eax, ebp
mov dword [eax + 4], esi
lea eax, [esp + 0x290]
sub eax, ebp
mov dword [eax], edi
jmp 0x570b7b
jne 0x570cb8
xor esi, esi
cmp eax, esi
ja 0x570cae
mov eax, dword [esp + 0x20]
jb 0x570b6d
cmp edi, eax
ja 0x570cae
mov esi, ecx
mov dword [esp + 0x40], edi
sub esi, edi
add esi, eax
mov dword [esp + 0x3c], esi
mov ebp, dword [esp + 0x2b4]
mov ecx, dword [ebp + edx*8]
mov eax, dword [ebp + edx*8 + 4]
mov edx, dword [ebp + edx*8 + 8]
mov ebp, dword [esp + 0x34]
sub edx, ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2b4]
mov ebp, dword [edx + ebp*8 + 0xc]
sbb ebp, eax
add ecx, dword [esp + 0x2bc]
adc eax, dword [esp + 0x2c0]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0056fe9c
pop ecx
pop ecx
test eax, eax
jne 0x570c91
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax + 0x3c]
test eax, eax
jne 0x570c0d
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x570cb3
xor ecx, ecx
cmp ebp, ecx
jne 0x570cb3
mov edi, dword [esp + 0x18]
mov edx, esi
mov ecx, dword [esp + 0x24]
push edi
push ebp
push eax
call fcn.00570475
add esp, 0xc
test eax, eax
jne 0x570c91
mov esi, dword [esp + 0x1c]
jmp 0x570c7a
cmp eax, 0x30101
jne 0x570c40
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
push dword [esp + 0x2c]
push edi
push esi
mov esi, dword [esp + 0x2c]
push dword [esp + 0x34]
push ebp
mov ecx, dword [ebx + esi + 0x38]
movzx edx, byte [ebx + esi + 0x41]
add ecx, dword [esp + 0x44]
push eax
call fcn.005700e1
jmp 0x570c6f
cmp eax, 0x21
jne 0x570cb8
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
push dword [esp + 0x2c]
push edi
push esi
mov esi, dword [esp + 0x2c]
push dword [esp + 0x34]
push ebp
mov ecx, dword [ebx + esi + 0x38]
movzx edx, byte [ebx + esi + 0x41]
add ecx, dword [esp + 0x44]
push eax
call fcn.0057029c
add esp, 0x1c
test eax, eax
jne 0x570c91
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [esi]
jb 0x570773
xor eax, eax
mov ecx, dword [esp + 0x2a4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00628cc2
add esp, 0x29c
ret
push 2
jmp 0x570cb0
push 5
pop eax
jmp 0x570c91
xor eax, eax
inc eax
jmp 0x570c91
push 4
jmp 0x570cb0