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

Disassembly:
push 0xffffffffffffffff
push 0x568080
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
mov al, byte [esp + 0x64]
push ebx
push ebp
push esi
xor esi, esi
push edi
mov ebp, ecx
mov byte [esp + 0x34], al
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov cl, byte [esp + 0x74]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov byte [esp + 0x24], cl
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov ebx, dword [esp + 0x74]
mov byte [esp + 0x6c], 1
cmp ebx, esi
je 0x522eae
cmp dword [ebx + 0x40], esi
je 0x522eae
lea edx, [esp + 0x13]
lea ecx, [esp + 0x34]
push edx
push 0x1000
push esi
mov dword [ebp], ebx
mov byte [esp + 0x1f], 0
call fcn.00520b50
mov eax, dword [ebx + 0x38f0]
push esi
mov dword [ebp + 8], eax
mov ecx, dword [ebx + 0x38f4]
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp + 8]
mov edx, ecx
mov ecx, dword [esp + 0x3c]
push 0x1000
push edx
push eax
push ecx
push ebx
call fcn.00522570
add esp, 0x18
cmp eax, 0x1000
je 0x52288c
mov edx, dword [esp + 0x28]
push edx
call fcn.00548c9c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add esp, 4
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
push eax
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x74], 0xffffffff
call fcn.004e7620
mov edx, dword [esp + 0x38]
push edx
call fcn.00548c9c
add esp, 4
jmp 0x522ecd
mov eax, dword [esp + 0x38]
lea edi, [ebp + 0x18]
mov ecx, 0x160
mov esi, eax
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x38], 0x4253584e
je 0x522905
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x74], 0
call fcn.004e7620
mov edx, dword [esp + 0x28]
push edx
call fcn.00548c9c
mov ecx, dword [esp + 0x3c]
xor eax, eax
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], 0xffffffff
push eax
push ecx
lea ecx, [esp + 0x3c]
call fcn.004e7620
mov edx, dword [esp + 0x38]
push edx
call fcn.00548c9c
add esp, 4
jmp 0x522ecd
mov esi, dword [ebp + 0x3c]
cmp esi, 0x1000
je 0x5229ed
mov edx, dword [esp + 0x3c]
xor edi, edi
cmp eax, edi
mov byte [esp + 0x13], 0
jne 0x522927
xor ecx, ecx
jmp 0x52292b
mov ecx, edx
sub ecx, eax
cmp ecx, esi
jae 0x52294f
cmp eax, edi
jne 0x522937
xor ecx, ecx
jmp 0x52293b
mov ecx, edx
sub ecx, eax
lea eax, [esp + 0x13]
sub esi, ecx
push eax
push esi
push edx
lea ecx, [esp + 0x40]
call fcn.00520b50
jmp 0x522968
cmp eax, edi
je 0x52296c
mov ecx, edx
sub ecx, eax
cmp esi, ecx
jae 0x52296c
add eax, esi
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.00520f10
mov eax, dword [esp + 0x38]
mov esi, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0xc]
mov edx, esi
push edi
push edx
mov edx, dword [ebp + 8]
push ecx
push edx
push eax
push ebx
call fcn.00522570
add esp, 0x18
cmp eax, esi
je 0x5229e7
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x74], 0
call fcn.004e7620
mov edx, dword [esp + 0x28]
push edx
call fcn.00548c9c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add esp, 4
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
push eax
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x74], 0xffffffff
call fcn.004e7620
mov edx, dword [esp + 0x38]
push edx
call fcn.00548c9c
add esp, 4
jmp 0x522ecd
mov eax, dword [esp + 0x38]
jmp 0x5229ef
xor edi, edi
push esi
push eax
call fcn.00522080
add esp, 8
test al, al
je 0x522989
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ecx, 0x160
lea edi, [ebp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x3c]
mov esi, dword [esp + 0x2c]
test edx, edx
mov byte [esp + 0x13], 0
jne 0x522a23
xor ecx, ecx
jmp 0x522a27
mov ecx, esi
sub ecx, edx
cmp ecx, eax
jae 0x522a4b
test edx, edx
jne 0x522a33
xor ecx, ecx
jmp 0x522a37
mov ecx, esi
sub ecx, edx
lea edx, [esp + 0x13]
sub eax, ecx
push edx
push eax
push esi
lea ecx, [esp + 0x30]
call fcn.00520b50
jmp 0x522a64
test edx, edx
je 0x522a68
mov ecx, esi
sub ecx, edx
cmp eax, ecx
jae 0x522a68
add edx, eax
push esi
push edx
lea ecx, [esp + 0x2c]
call fcn.00520f10
mov edx, dword [esp + 0x28]
mov edi, dword [ebp + 0x88]
mov esi, dword [ebp + 0x8c]
mov ecx, dword [ebp + 0x80]
xor eax, eax
add ecx, edi
mov ebx, esi
adc eax, ebx
cmp esi, eax
ja 0x522b9e
jb 0x522a94
cmp edi, ecx
jae 0x522b9e
mov ebx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 8]
mov eax, ebx
push 0
push eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc eax, esi
push eax
push ecx
mov ecx, dword [esp + 0x84]
push edx
push ecx
call fcn.00522570
add esp, 0x18
cmp eax, ebx
jne 0x522e8b
mov edx, dword [esp + 0x28]
push ebx
push edx
call fcn.00522080
mov edx, dword [esp + 0x30]
add esp, 8
test al, al
je 0x522b24
mov eax, dword [edx + 0x18]
and eax, 0xffff
cmp eax, 1
jne 0x522b24
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov ebx, eax
or ebx, ecx
je 0x522afe
cmp eax, dword [edx + 0x10]
jne 0x522b24
cmp ecx, dword [edx + 0x14]
je 0x522b5c
jmp 0x522b24
mov eax, dword [edx + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [edx + 0x10]
cmp eax, ebx
jb 0x522b24
ja 0x522b14
cmp ecx, dword [esp + 0x14]
jbe 0x522b24
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
mov ecx, dword [ebp + 0x80]
mov ebx, dword [ebp + 0x88]
add edi, 1
adc esi, 0
xor eax, eax
add ecx, ebx
mov ebx, dword [ebp + 0x8c]
adc eax, ebx
cmp esi, eax
jb 0x522a94
ja 0x522b54
cmp edi, ecx
jb 0x522a94
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ecx, edi
or ecx, esi
je 0x522b9e
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 8]
push 0
push eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc eax, esi
push eax
push ecx
mov ecx, dword [esp + 0x84]
push edx
push ecx
call fcn.00522570
mov ecx, dword [ebp + 0x3c]
add esp, 0x18
cmp eax, ecx
jne 0x522e8b
mov esi, dword [esp + 0x28]
mov ecx, 0x160
lea edi, [ebp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp + 0xa4]
mov eax, dword [ebp + 0xa0]
mov edi, dword [ebp + 0x88]
xor ebx, ebx
dec edx
xor ecx, ecx
push edx
mov edx, dword [ebp + 0x8c]
add eax, edi
lea esi, [ebp + 0x598]
adc ecx, edx
push ecx
push eax
mov ecx, esi
call fcn.00521dc0
test al, al
je 0x522c7f
mov edx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0xbc]
push edx
mov edx, dword [ebp + 0xb8]
push eax
push ecx
push edx
lea ecx, [ebp + 0x5c0]
call fcn.00524880
test al, al
jne 0x522c59
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x6c], al
mov eax, dword [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.004e7620
mov edx, dword [esp + 0x28]
push edx
call fcn.00548c9c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
push eax
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x74], 0xffffffff
call fcn.004e7620
mov edx, dword [esp + 0x38]
push edx
call fcn.00548c9c
add esp, 4
jmp 0x522ecd
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
mov eax, dword [esi]
push ecx
mov ecx, dword [ebp + 0xb4]
push edx
mov edx, dword [ebp + 0xb0]
push ecx
lea ecx, [esp + 0x50]
push edx
push ecx
mov ecx, esi
call dword [eax + 4]
test al, al
jne 0x522cdd
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x74], 0
call fcn.004e7620
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00548c9c
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
add esp, 4
lea ecx, [esp + 0x34]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
push edx
push eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x74], 0xffffffff
call fcn.004e7620
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00548c9c
add esp, 4
jmp 0x522ecd
mov ecx, dword [ebp + 0x684]
lea esi, [ebp + 0x680]
cmp ecx, ebx
mov byte [esp + 0x74], 0
jne 0x522cf6
xor edx, edx
jmp 0x522cfb
mov edx, dword [esi + 8]
sub edx, ecx
mov eax, dword [esp + 0x58]
cmp edx, eax
jae 0x522d25
cmp ecx, ebx
jne 0x522d0b
xor edx, edx
jmp 0x522d10
mov edx, dword [esi + 8]
sub edx, ecx
mov ecx, dword [esi + 8]
lea edi, [esp + 0x74]
sub eax, edx
push edi
push eax
push ecx
mov ecx, esi
call fcn.00520b50
jmp 0x522d3f
cmp ecx, ebx
je 0x522d43
mov edx, dword [esi + 8]
mov edi, edx
sub edi, ecx
cmp eax, edi
jae 0x522d43
add ecx, eax
push edx
push ecx
mov ecx, esi
call fcn.00520f10
mov eax, dword [esp + 0x58]
mov ecx, dword [ebp + 0x3c]
xor edx, edx
div ecx
mov edx, dword [esp + 0x60]
mov edi, dword [ebp + 0x684]
push ebx
mov ecx, ebp
push eax
mov eax, dword [esp + 0x64]
push edx
push eax
push edi
call fcn.00523040
mov eax, dword [ebp + 0x684]
mov dword [ebp + 0x690], eax
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x522d7b
xor esi, esi
jmp 0x522d80
mov esi, dword [esi + 8]
sub esi, eax
mov eax, dword [ebp + 0x684]
push esi
push eax
call fcn.00522080
add esp, 8
test al, al
jne 0x522df1
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x74], al
call fcn.004e7620
mov eax, dword [esp + 0x28]
push eax
call fcn.00548c9c
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
push ecx
push edx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x74], 0xffffffff
call fcn.004e7620
mov eax, dword [esp + 0x38]
push eax
call fcn.00548c9c
add esp, 4
jmp 0x522ecd
mov eax, dword [ebp + 0x690]
mov ecx, dword [eax + 0x18]
and ecx, 0xffff
cmp ecx, 5
je 0x522e29
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c], 0
call fcn.004e7260
lea ecx, [esp + 0x34]
mov dword [esp + 0x6c], 0xffffffff
call fcn.004e7260
jmp 0x522ecd
mov ecx, dword [eax + 0xd0]
mov edx, dword [eax + 0xd4]
mov esi, ecx
or esi, edx
je 0x522e57
lea esi, [ebp + 0x598]
push esi
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
push esi
push eax
push edx
push ecx
lea ecx, [ebp + 0x698]
call fcn.005202d0
mov eax, dword [ebp + 0x690]
mov ecx, dword [eax + 0xf8]
mov edx, dword [eax + 0xfc]
mov esi, ecx
or esi, edx
je 0x522e8b
lea esi, [ebp + 0x598]
push esi
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
push esi
push eax
push edx
push ecx
lea ecx, [ebp + 0x6f0]
call fcn.005202d0
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c], 0
call fcn.004e7260
lea ecx, [esp + 0x34]
mov dword [esp + 0x6c], 0xffffffff
call fcn.004e7260
mov al, 1
jmp 0x522ecf
push esi
call fcn.00548c9c
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], esi
push ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
call fcn.00548c9c
add esp, 8
xor al, al
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x60
ret 0xc