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

Disassembly:
push 0xffffffffffffffff
push 0x568148
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push ebp
mov ebx, ecx
push esi
push edi
lea ecx, [esp + 0x64]
call fcn.0051fca0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x80], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x9c]
test eax, eax
jbe 0x524388
mov ecx, dword [ebx]
xor edx, edx
mov eax, dword [ecx + 0x3c]
and eax, 0x20
or eax, edx
je 0x524132
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
push 0
mov dword [esp + 0x58], edx
push ebx
mov dword [esp + 0x60], eax
push 0x5245c0
lea edx, [esp + 0x60]
push 0x10
lea eax, [esp + 0x74]
push edx
push eax
add ecx, 0x5f0
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], edi
call fcn.005203b0
test al, al
je 0x5243b3
mov eax, dword [esp + 0x64]
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x68]
sub esi, ebp
sbb edi, edx
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
and ebp, 0xffffff
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
jmp 0x5241e8
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
and ecx, 0xfffffff
push 0
or ecx, 0x80000000
push ebx
mov dword [esp + 0x50], ecx
push 0x5243d0
lea eax, [esp + 0x50]
push 0x10
lea ecx, [esp + 0x74]
push eax
push ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edi
call fcn.005203b0
test al, al
je 0x5243b3
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x44]
mov edx, dword [eax]
cmp edx, ecx
jne 0x5243b3
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x48]
cmp ecx, edx
jne 0x5243b3
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x68]
sub esi, ebp
sbb edi, edx
mov edx, dword [eax]
mov ecx, dword [eax + 8]
mov ebp, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0x14]
and ebp, 0xffffff
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov ecx, dword [ebx + 0x20]
mov eax, esi
mov edx, edi
call fcn.00526f40
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x30], 0
and ecx, esi
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x1c]
and ecx, edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], ecx
add ecx, esi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
adc ecx, edi
cmp ecx, ebp
jb 0x52423d
mov ebp, dword [esp + 0x34]
ja 0x524239
cmp dword [esp + 0x3c], ebp
jbe 0x52423d
sub ebp, esi
jmp 0x524241
mov ebp, dword [esp + 0x10]
test ebp, ebp
je 0x524388
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, edi
or ecx, esi
je 0x524328
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
or ecx, esi
jne 0x5242b5
cmp ebp, dword [ebx + 0xc]
jbe 0x52426f
and ebp, dword [ebx + 0x10]
mov ecx, ebp
xor esi, esi
and ecx, dword [ebx + 0x18]
and esi, dword [ebx + 0x1c]
or ecx, esi
jne 0x5242b5
mov esi, dword [esp + 0x1c]
mov ecx, eax
add ecx, esi
mov esi, edx
adc esi, dword [esp + 0x20]
push esi
push ecx
mov ecx, dword [ebx + 0x20]
mov esi, ebp
shr esi, cl
add eax, edi
mov edi, dword [esp + 0x20]
mov ecx, dword [ebx]
push 0
adc edx, edi
push esi
push edx
mov edx, dword [esp + 0x9c]
push eax
push edx
call fcn.00524f30
jmp 0x524341
mov edi, dword [esp + 0x1c]
mov esi, eax
add esi, edi
mov edi, edx
adc edi, dword [esp + 0x20]
mov ecx, dword [ebx + 0x28]
push edi
mov edi, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x1c]
add eax, esi
push 0
adc edx, edi
push 1
push edx
push eax
push ecx
mov ecx, dword [ebx]
call fcn.00524f30
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov esi, dword [ebx + 0xc]
mov ecx, ebp
xor eax, eax
add ecx, edi
adc eax, edx
xor edx, edx
cmp eax, edx
jb 0x524309
ja 0x524301
cmp ecx, esi
jbe 0x524309
sub esi, edi
mov dword [esp + 0x10], esi
mov ebp, esi
mov eax, dword [ebx + 0x28]
mov ecx, ebp
lea esi, [edi + eax]
mov edi, dword [esp + 0x88]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x524341
mov edi, dword [esp + 0x88]
mov ecx, ebp
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
add esi, ebp
add edx, ebp
adc ecx, 0
sub eax, ebp
mov dword [esp + 0x88], esi
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
jne 0x52408f
lea ecx, [esp + 0x64]
mov dword [esp + 0x80], 0xffffffff
call fcn.004413e0
mov al, 1
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret 0x18
lea ecx, [esp + 0x64]
mov dword [esp + 0x80], 0xffffffff
call fcn.004413e0
xor al, al
jmp 0x52439e