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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd0
mov dword [esp], ecx
mov ecx, dword [edx + 4]
mov esi, dword [edx]
mov ebx, dword [edx + 8]
mov ebp, edx
call 0x526fcc
pop eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov edx, ebx
push dword [esi + 0x50]
call fcn.00526dd0
add esp, 4
cmp eax, 0x5c
mov dword [esp + 0x98], eax
jne 0x527b31
lea edi, [esi + 0x50]
mov ecx, ebp
movsd xmm0, qword [edi]
movsd qword [esp + 0x14], xmm0
mov eax, dword [edi + 8]
mov dword [esp + 0x1c], eax
call fcn.00526eb0
test al, al
je 0x5270a3
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], ebx
mov edx, ebx
push dword [edi]
call fcn.00526dd0
add esp, 4
mov ebx, eax
and eax, 0x1ffff8
cmp eax, 0x30
jne 0x5270f7
cmp byte [esi + 0x65], 0
je 0x5271e0
lea ecx, [esp + 0x58]
mov edx, ebp
call fcn.00538120
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x14]
mov dword [esp + 0x64], eax
movsd qword [esp + 0x5c], xmm0
mov eax, dword [esp]
movsd xmm1, qword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x60]
movsd qword [eax + 0x2c], xmm1
movsd xmm1, qword [esp + 0x58]
movsd qword [eax + 0x24], xmm0
movsd qword [eax + 0x1c], xmm2
movsd qword [eax + 0x14], xmm1
mov dword [eax + 0x10], 0x80000002
mov dword [eax], 0x22
jmp 0x527646
mov eax, dword [edi + 8]
movsd xmm1, qword [esp + 0x14]
test ebx, ebx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [edi]
movsd qword [esp + 0x64], xmm0
movsd qword [esp + 0x58], xmm1
mov dword [esp + 0x60], eax
je 0x527193
js 0x527b54
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, ebx
call fcn.0056a9f0
mov esi, ebx
mov ebx, eax
test eax, eax
jne 0x52719a
jmp 0x527b59
mov eax, ebx
and eax, 0x1ffffe
cmp eax, 0x38
jne 0x5272d4
cmp byte [esi + 0x65], 0
je 0x5271e0
mov ecx, ebp
call fcn.00526eb0
mov eax, dword [edi + 8]
movsd xmm1, qword [esp + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [edi]
movsd qword [esp + 0x2c], xmm0
mov dword [esp + 0x28], eax
lea eax, [ebx - 0x23]
movsd qword [esp + 0x20], xmm1
cmp eax, 0x5b
ja 0x527651
mov eax, dword [eax*4 + 0x527c50]
add eax, dword [esp + 0xc]
jmp eax
mov esi, ebx
mov ebx, 1
push esi
push dword [esp + 0xc]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esp + 0x60]
mov eax, dword [esp]
movsd xmm0, qword [esp + 0x58]
movsd qword [eax + 0x30], xmm1
movsd xmm1, qword [esp + 0x68]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x38], xmm1
mov dword [eax], 0xa
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], ebx
mov dword [eax + 0x24], esi
jmp 0x527646
mov ebx, dword [esp + 0x10]
mov edi, dword [edi]
mov ecx, dword [esp + 8]
mov edx, ebx
push edi
call fcn.00526dd0
add esp, 4
mov ecx, 1
cmp eax, 0x80
jb 0x52721a
mov ecx, 2
cmp eax, 0x800
jb 0x52721a
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add edi, ecx
jb 0x527b65
mov ebp, dword [esi + 0x58]
mov dword [esp + 0xc], edi
inc ebp
je 0x527b6f
mov edi, dword [esi + 0x54]
mov ecx, dword [esp + 8]
mov edx, ebx
push dword [esi + 0x50]
call fcn.00526dd0
add esp, 4
xor ecx, ecx
cmp eax, 0xa
mov esi, ebx
mov ebx, 1
sete al
cmove ebp, ebx
test esi, esi
je 0x52728c
mov byte [esp + 7], al
js 0x527b54
movzx eax, byte [0x5fd2ec]
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov edx, esi
call fcn.0056a9f0
mov ebx, eax
test eax, eax
movzx eax, byte [esp + 7]
mov ecx, 0
je 0x527b59
mov cl, al
add edi, ecx
push esi
push dword [esp + 0xc]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x14]
mov ecx, dword [esp]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
movsd qword [ecx + 0x28], xmm0
mov dword [ecx + 0x30], eax
mov dword [ecx], 0x20
mov dword [ecx + 0x1c], esi
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x24], esi
mov dword [ecx + 0x34], edx
mov dword [ecx + 0x38], edi
mov dword [ecx + 0x3c], ebp
jmp 0x527646
lea eax, [ebx - 0x44]
cmp eax, 0x34
ja 0x527111
mov eax, dword [eax*4 + 0x527b7c]
add eax, dword [esp + 0xc]
jmp eax
add esp, 0xd0
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebx
call fcn.00537a60
test al, al
je 0x527696
movsd xmm0, qword [esp + 0x30]
mov eax, dword [esp]
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x28]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x20], xmm1
movsd qword [eax + 0x18], xmm2
mov dword [eax + 0x10], 0x80000002
mov dword [eax + 0x14], ebx
mov byte [eax + 0x30], 2
mov dword [eax], 0x22
jmp 0x527646
add ebx, 0xffffffc4
cmp ebx, 0x3e
ja 0x5276e5
mov eax, dword [esp + 0xc]
add eax, dword [ebx*4 + 0x527dc0]
jmp eax
mov edx, dword [esp + 8]
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0xb
lea esi, [esp + 0x20]
lea ecx, [esp + 0x58]
push eax
push esi
push dword [esp + 0x18]
call fcn.0052e9c0
add esp, 0xc
mov eax, dword [esp]
movsd xmm1, qword [esp + 0x88]
movsd xmm2, qword [esp + 0x80]
movsd xmm0, qword [esp + 0x90]
movsd qword [eax + 0x30], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [eax + 0x28], xmm2
movsd xmm2, qword [esp + 0x70]
movsd qword [eax + 0x38], xmm0
movsd qword [eax + 0x20], xmm1
movsd xmm1, qword [esp + 0x68]
movsd qword [eax + 0x18], xmm2
movsd xmm2, qword [esp + 0x58]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0x60]
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
jmp 0x527646
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
lea ecx, [esp + 0x98]
mov edx, 0x5ea998
push 0x59fe58
push eax
call fcn.005870c0
call fcn.004634e0
mov ecx, 1
mov edx, esi
call fcn.0057f230
mov ecx, 0x59fb68
call fcn.0057fb10
mov ecx, 0x59fb78
call fcn.0057fb10
nop dword [eax]
and dword [ebx], eax
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebx], ch
add al, 0
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ecx], ah
add eax, dword [eax]
add byte [ebp + 1], al
add byte [eax], al
ja 0x527bc5
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ecx], ah
add eax, dword [eax]
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ecx], ah
add eax, dword [eax]
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ebp + 1], al
add byte [eax], al
sub eax, dword [eax + eax]
add byte [ebp + 1], al
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ecx], ah
add eax, dword [eax]
add byte [ebp + 1], al
add byte [eax], al
ja 0x527c45
add byte [eax], al
inc ebp
add dword [eax], eax
add byte [ecx], ah
add eax, dword [eax]
add byte [edi + 3], dh
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
test dword [esi], eax
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
test dword [esi], eax
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
test dword [esi], eax
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
test dword [esi], eax
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
mov al, byte [ecx]
add byte [eax], al
fild word [esi]
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
lodsd eax, dword [esi]
pop es
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
out 7, eax
add byte [eax], al
and dword [eax], ecx
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
pop ebx
or byte [eax], al
add byte [esi + 0x19000008], bl
pop es
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
insd dword es:[edi], dx
or dword [eax], eax
add byte [ecx], bl
pop es
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
mov al, 9
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
or dword [eax], eax
add byte [ecx], bl
pop es
add byte [eax], al
or al, byte ss:[eax]
add byte [ecx], bl
pop es
add byte [eax], al
jns 0x527eb4
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
sbb dword [edi], eax
add byte [eax], al
mov esp, 0xcc00000a
int3