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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1c
call fcn.00663af0
mov eax, ecx
mov dword [ebp - 0xc], edx
mov ecx, dword [edx]
mov edx, 1
push ebx
push esi
mov esi, dword [eax + 4]
push edi
mov edi, dword [eax]
mov dword [ebp - 0x18], eax
mov eax, edi
shr eax, 0x10
imul ecx, eax
shr esi, 0x10
test ecx, ecx
je 0x5263d7
mov eax, ecx
movzx ebx, cx
mov ecx, dword [ebp - 0xc]
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x5263de
mov ecx, dword [ebp - 0xc]
mov ebx, edx
sub ebx, dword [ecx]
add esi, dword [ecx + 8]
sub ebx, eax
add edi, dword [ecx + 4]
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x18]
mov dword [ebp - 8], edi
mov eax, dword [esi + 4]
mov esi, dword [ecx + 0xc]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x526410
mov eax, esi
movzx edi, si
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x526415
mov edi, edx
sub edi, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
sub edi, eax
mov eax, dword [ebp - 0x10]
xor eax, ebx
movzx eax, ax
imul esi, eax
test esi, esi
je 0x52643a
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x52643f
mov esi, edx
sub esi, dword [ecx + 0x10]
sub esi, eax
mov eax, edi
xor eax, dword [ebp - 8]
add eax, esi
movzx eax, ax
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 0x14]
imul eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x52647c
mov edx, dword [ebp - 0x14]
shr eax, 0x10
movzx edx, dx
sub edx, eax
mov eax, edx
mov dword [ebp - 4], edx
shr eax, 0x10
mov edx, 1
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x526484
mov eax, edx
sub eax, dword [ecx + 0x14]
sub eax, dword [ebp - 0xc]
add esi, eax
xor edi, esi
xor esi, dword [ebp - 8]
mov dword [ebp - 0x14], edi
mov edi, eax
xor edi, dword [ebp - 0x10]
xor eax, ebx
mov ebx, dword [ecx + 0x18]
mov dword [ebp - 8], edi
movzx edi, ax
imul ebx, edi
test ebx, ebx
je 0x5264bb
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
sub ebx, eax
mov dword [ebp - 0xc], ebx
jmp 0x5264c5
mov eax, edx
sub eax, dword [ecx + 0x18]
sub eax, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
add eax, dword [ecx + 0x1c]
mov edi, dword [ebp - 0x14]
add esi, dword [ecx + 0x20]
mov dword [ebp - 8], eax
movzx eax, di
mov edi, dword [ecx + 0x24]
imul edi, eax
mov dword [ebp - 0x1c], esi
test edi, edi
je 0x5264f5
mov eax, edi
movzx ebx, di
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x5264fa
mov ebx, edx
sub ebx, dword [ecx + 0x24]
mov edi, dword [ecx + 0x28]
sub ebx, eax
mov eax, esi
xor eax, dword [ebp - 0xc]
movzx eax, ax
imul edi, eax
test edi, edi
je 0x52651f
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x526524
mov edi, edx
sub edi, dword [ecx + 0x28]
sub edi, eax
mov eax, ebx
xor eax, dword [ebp - 8]
add eax, edi
movzx eax, ax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x2c]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x52655f
mov esi, dword [ebp - 0x14]
shr eax, 0x10
movzx esi, si
sub esi, eax
mov eax, esi
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x1c]
shr eax, 0x10
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x526567
mov eax, edx
sub eax, dword [ecx + 0x2c]
sub eax, dword [ebp - 0x10]
add edi, eax
mov dword [ebp - 4], eax
xor dword [ebp - 4], esi
xor ebx, edi
xor eax, dword [ebp - 0xc]
mov esi, dword [ecx + 0x30]
xor edi, dword [ebp - 8]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x526595
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x52659a
mov esi, edx
sub esi, dword [ecx + 0x30]
add edi, dword [ecx + 0x38]
sub esi, eax
mov eax, dword [ebp - 4]
add eax, dword [ecx + 0x34]
mov dword [ebp - 4], eax
movzx eax, bx
mov ebx, dword [ecx + 0x3c]
imul ebx, eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], edi
test ebx, ebx
je 0x5265cc
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x5265d1
mov ebx, edx
sub ebx, dword [ecx + 0x3c]
sub ebx, eax
mov eax, edi
xor eax, esi
mov esi, dword [ecx + 0x40]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x5265f5
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x5265fa
mov esi, edx
sub esi, dword [ecx + 0x40]
sub esi, eax
mov eax, ebx
xor eax, dword [ebp - 4]
add eax, esi
movzx eax, ax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x44]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x526635
mov edi, dword [ebp - 0x1c]
shr eax, 0x10
movzx edi, di
sub edi, eax
mov eax, edi
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x14]
shr eax, 0x10
sub dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x52663d
mov eax, edx
sub eax, dword [ecx + 0x44]
sub eax, dword [ebp - 0x10]
add esi, eax
xor ebx, esi
xor esi, dword [ebp - 4]
mov dword [ebp - 4], eax
xor dword [ebp - 4], edi
xor eax, dword [ebp - 0xc]
mov edi, dword [ecx + 0x48]
movzx eax, ax
imul edi, eax
test edi, edi
je 0x52666b
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x526670
mov edi, edx
sub edi, dword [ecx + 0x48]
add esi, dword [ecx + 0x50]
sub edi, eax
mov eax, dword [ebp - 4]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 4], eax
movzx eax, bx
mov ebx, dword [ecx + 0x54]
imul ebx, eax
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], esi
test ebx, ebx
je 0x5266a2
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x5266a7
mov ebx, edx
sub ebx, dword [ecx + 0x54]
sub ebx, eax
mov eax, esi
xor eax, edi
mov edi, dword [ecx + 0x58]
movzx eax, ax
imul edi, eax
test edi, edi
je 0x5266cb
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x5266d0
mov edi, edx
sub edi, dword [ecx + 0x58]
sub edi, eax
mov eax, ebx
xor eax, dword [ebp - 4]
add eax, edi
movzx eax, ax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x5c]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x52670b
mov esi, dword [ebp - 0x1c]
shr eax, 0x10
movzx esi, si
sub esi, eax
mov eax, esi
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x14]
shr eax, 0x10
sub dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x526713
mov eax, edx
sub eax, dword [ecx + 0x5c]
sub eax, dword [ebp - 0x10]
add edi, eax
xor ebx, edi
xor edi, dword [ebp - 4]
mov dword [ebp - 4], eax
xor dword [ebp - 4], esi
xor eax, dword [ebp - 0xc]
mov esi, dword [ecx + 0x60]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x526741
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x526746
mov esi, edx
sub esi, dword [ecx + 0x60]
add edi, dword [ecx + 0x68]
sub esi, eax
mov eax, dword [ebp - 4]
add eax, dword [ecx + 0x64]
mov dword [ebp - 4], eax
movzx eax, bx
mov ebx, dword [ecx + 0x6c]
imul ebx, eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], edi
test ebx, ebx
je 0x526778
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x52677d
mov ebx, edx
sub ebx, dword [ecx + 0x6c]
sub ebx, eax
mov eax, edi
xor eax, esi
mov esi, dword [ecx + 0x70]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x5267a1
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x5267a6
mov esi, edx
sub esi, dword [ecx + 0x70]
sub esi, eax
mov eax, ebx
xor eax, dword [ebp - 4]
add eax, esi
movzx eax, ax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x74]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x5267e1
mov edi, dword [ebp - 0x1c]
shr eax, 0x10
movzx edi, di
sub edi, eax
mov eax, edi
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x14]
shr eax, 0x10
sub dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x5267e9
mov eax, edx
sub eax, dword [ecx + 0x74]
sub eax, dword [ebp - 0x10]
add esi, eax
xor ebx, esi
xor esi, dword [ebp - 4]
mov dword [ebp - 4], eax
xor dword [ebp - 4], edi
xor eax, dword [ebp - 0xc]
mov edi, dword [ecx + 0x78]
movzx eax, ax
imul edi, eax
test edi, edi
je 0x526817
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x52681c
mov edi, edx
sub edi, dword [ecx + 0x78]
add esi, dword [ecx + 0x80]
sub edi, eax
mov eax, dword [ebp - 4]
add eax, dword [ecx + 0x7c]
mov dword [ebp - 4], eax
movzx eax, bx
mov ebx, dword [ecx + 0x84]
imul ebx, eax
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], esi
test ebx, ebx
je 0x526854
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x52685c
mov ebx, edx
sub ebx, dword [ecx + 0x84]
sub ebx, eax
mov eax, esi
xor eax, edi
mov edi, dword [ecx + 0x88]
movzx eax, ax
imul edi, eax
test edi, edi
je 0x526883
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x52688b
mov edi, edx
sub edi, dword [ecx + 0x88]
sub edi, eax
mov eax, ebx
xor eax, dword [ebp - 4]
add eax, edi
movzx eax, ax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x8c]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x5268c9
mov esi, dword [ebp - 0x1c]
shr eax, 0x10
movzx esi, si
sub esi, eax
mov eax, esi
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x14]
shr eax, 0x10
sub dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x5268d4
mov eax, edx
sub eax, dword [ecx + 0x8c]
sub eax, dword [ebp - 0x10]
add edi, eax
xor ebx, edi
xor edi, dword [ebp - 4]
mov dword [ebp - 4], eax
xor dword [ebp - 4], esi
xor eax, dword [ebp - 0xc]
mov esi, dword [ecx + 0x90]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x526905
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x52690d
mov esi, edx
sub esi, dword [ecx + 0x90]
add edi, dword [ecx + 0x98]
sub esi, eax
mov eax, dword [ebp - 4]
add eax, dword [ecx + 0x94]
mov dword [ebp - 4], eax
movzx eax, bx
mov ebx, dword [ecx + 0x9c]
imul ebx, eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], edi
test ebx, ebx
je 0x526948
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x526950
mov ebx, edx
sub ebx, dword [ecx + 0x9c]
sub ebx, eax
mov eax, edi
xor eax, esi
mov esi, dword [ecx + 0xa0]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x526977
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x52697f
mov esi, edx
sub esi, dword [ecx + 0xa0]
sub esi, eax
mov eax, ebx
xor eax, dword [ebp - 4]
add eax, esi
movzx eax, ax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0xa4]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x5269bd
mov edi, dword [ebp - 0x1c]
shr eax, 0x10
movzx edi, di
sub edi, eax
mov eax, edi
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x14]
shr eax, 0x10
sub dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x5269c8
mov eax, edx
sub eax, dword [ecx + 0xa4]
sub eax, dword [ebp - 0x10]
add esi, eax
xor ebx, esi
xor esi, dword [ebp - 4]
mov dword [ebp - 4], eax
xor dword [ebp - 4], edi
xor eax, dword [ebp - 0xc]
mov edi, dword [ecx + 0xa8]
movzx eax, ax
imul edi, eax
test edi, edi
je 0x5269f9
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x526a01
mov edi, edx
sub edi, dword [ecx + 0xa8]
add esi, dword [ecx + 0xb0]
sub edi, eax
mov eax, dword [ebp - 4]
add eax, dword [ecx + 0xac]
mov dword [ebp - 4], eax
movzx eax, bx
mov ebx, dword [ecx + 0xb4]
imul ebx, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], esi
test ebx, ebx
je 0x526a3c
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x526a44
mov ebx, edx
sub ebx, dword [ecx + 0xb4]
sub ebx, eax
mov eax, esi
xor eax, edi
mov edi, dword [ecx + 0xb8]
movzx eax, ax
imul edi, eax
test edi, edi
je 0x526a6b
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x526a73
mov edi, edx
sub edi, dword [ecx + 0xb8]
sub edi, eax
mov eax, ebx
xor eax, dword [ebp - 4]
add eax, edi
movzx eax, ax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0xbc]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x526ab1
mov esi, dword [ebp - 0x1c]
shr eax, 0x10
movzx esi, si
sub esi, eax
mov eax, esi
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0xc]
shr eax, 0x10
sub dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x526abc
mov eax, edx
sub eax, dword [ecx + 0xbc]
sub eax, dword [ebp - 0x10]
add edi, eax
mov dword [ebp - 0xc], eax
xor dword [ebp - 0xc], esi
xor ebx, edi
xor eax, dword [ebp - 0x14]
mov esi, dword [ecx + 0xc0]
xor edi, dword [ebp - 4]
movzx eax, ax
imul esi, eax
test esi, esi
je 0x526aed
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x526af5
mov esi, edx
sub esi, dword [ecx + 0xc0]
sub esi, eax
movzx ebx, bx
mov eax, dword [ecx + 0xc4]
add eax, edi
mov edi, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
add edi, dword [ebp - 0xc]
mov dword [ebp - 0x14], ecx
imul ecx, ebx
mov dword [ebp - 0x1c], eax
test ecx, ecx
je 0x526b34
mov eax, ecx
movzx edx, cx
shr eax, 0x10
sub edx, eax
mov eax, edx
shr eax, 0x10
sub edx, eax
mov eax, dword [ebp - 0x1c]
jmp 0x526b39
sub edx, dword [ebp - 0x14]
sub edx, ebx
mov ecx, dword [ebp - 0x18]
shl esi, 0x10
movzx eax, ax
or eax, esi
shl edi, 0x10
mov dword [ecx], eax
movzx eax, dx
or edi, eax
mov dword [ecx + 4], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret