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

Disassembly:
push ebp
push ebx
push esi
push edi
sub esp, 0x10
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
bswap eax
bswap ebx
bswap ecx
bswap edx
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
cmp ebp, 0x80
je 0x5096d8
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
cmp ebp, 0xc0
je 0x5096b0
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
jmp 0x5096b8
mov ecx, eax
mov edx, ebx
not ecx
not edx
bswap eax
bswap ebx
bswap ecx
bswap edx
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
xor eax, dword [edi]
xor ebx, dword [edi + 4]
xor ecx, dword [edi + 8]
xor edx, dword [edi + 0xc]
nop
call 0x5096dd
pop ebp
lea ebp, [ebp + 0x9a3]
lea edi, [ebp - 0x40]
mov esi, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
xor eax, esi
xor ebx, dword [edi + 4]
movzx esi, ah
mov edx, dword [ebp + esi*8 + 0x804]
movzx esi, al
xor edx, dword [ebp + esi*8 + 4]
shr eax, 0x10
movzx esi, bl
mov ecx, dword [ebp + esi*8]
movzx esi, ah
xor edx, dword [ebp + esi*8]
movzx esi, bh
xor ecx, dword [ebp + esi*8 + 4]
shr ebx, 0x10
movzx eax, al
xor edx, dword [ebp + eax*8 + 0x800]
movzx esi, bh
mov eax, dword [esp + 0xc]
xor ecx, edx
ror edx, 8
xor ecx, dword [ebp + esi*8 + 0x800]
movzx esi, bl
mov ebx, dword [esp + 8]
xor edx, eax
xor ecx, dword [ebp + esi*8 + 0x804]
mov esi, dword [edi + 8]
xor edx, ecx
mov dword [esp + 0xc], edx
xor ecx, ebx
mov dword [esp + 8], ecx
xor ecx, esi
xor edx, dword [edi + 0xc]
movzx esi, ch
mov ebx, dword [ebp + esi*8 + 0x804]
movzx esi, cl
xor ebx, dword [ebp + esi*8 + 4]
shr ecx, 0x10
movzx esi, dl
mov eax, dword [ebp + esi*8]
movzx esi, ch
xor ebx, dword [ebp + esi*8]
movzx esi, dh
xor eax, dword [ebp + esi*8 + 4]
shr edx, 0x10
movzx ecx, cl
xor ebx, dword [ebp + ecx*8 + 0x800]
movzx esi, dh
mov ecx, dword [esp + 4]
xor eax, ebx
ror ebx, 8
xor eax, dword [ebp + esi*8 + 0x800]
movzx esi, dl
mov edx, dword [esp]
xor ebx, ecx
xor eax, dword [ebp + esi*8 + 0x804]
mov esi, dword [edi + 0x10]
xor ebx, eax
mov dword [esp + 4], ebx
xor eax, edx
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
xor eax, dword [esi]
xor ebx, dword [esi + 4]
xor ecx, dword [esi + 8]
xor edx, dword [esi + 0xc]
mov esi, dword [edi + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
xor eax, esi
xor ebx, dword [edi + 0x14]
movzx esi, ah
mov edx, dword [ebp + esi*8 + 0x804]
movzx esi, al
xor edx, dword [ebp + esi*8 + 4]
shr eax, 0x10
movzx esi, bl
mov ecx, dword [ebp + esi*8]
movzx esi, ah
xor edx, dword [ebp + esi*8]
movzx esi, bh
xor ecx, dword [ebp + esi*8 + 4]
shr ebx, 0x10
movzx eax, al
xor edx, dword [ebp + eax*8 + 0x800]
movzx esi, bh
mov eax, dword [esp + 0xc]
xor ecx, edx
ror edx, 8
xor ecx, dword [ebp + esi*8 + 0x800]
movzx esi, bl
mov ebx, dword [esp + 8]
xor edx, eax
xor ecx, dword [ebp + esi*8 + 0x804]
mov esi, dword [edi + 0x18]
xor edx, ecx
mov dword [esp + 0xc], edx
xor ecx, ebx
mov dword [esp + 8], ecx
xor ecx, esi
xor edx, dword [edi + 0x1c]
movzx esi, ch
mov ebx, dword [ebp + esi*8 + 0x804]
movzx esi, cl
xor ebx, dword [ebp + esi*8 + 4]
shr ecx, 0x10
movzx esi, dl
mov eax, dword [ebp + esi*8]
movzx esi, ch
xor ebx, dword [ebp + esi*8]
movzx esi, dh
xor eax, dword [ebp + esi*8 + 4]
shr edx, 0x10
movzx ecx, cl
xor ebx, dword [ebp + ecx*8 + 0x800]
movzx esi, dh
mov ecx, dword [esp + 4]
xor eax, ebx
ror ebx, 8
xor eax, dword [ebp + esi*8 + 0x800]
movzx esi, dl
mov edx, dword [esp]
xor ebx, ecx
xor eax, dword [ebp + esi*8 + 0x804]
mov esi, dword [edi + 0x20]
xor ebx, eax
mov dword [esp + 4], ebx
xor eax, edx
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
cmp esi, 0x80
jne 0x509b80
mov edi, dword [esp + 0x2c]
lea edi, [edi + 0x80]
mov dword [edi - 0x70], eax
mov dword [edi - 0x6c], ebx
mov dword [edi - 0x68], ecx
mov dword [edi - 0x64], edx
mov ebp, eax
shl eax, 0xf
mov esi, ebx
shr esi, 0x11
shl ebx, 0xf
or eax, esi
mov esi, ecx
shl ecx, 0xf
mov dword [edi - 0x50], eax
shr esi, 0x11
or ebx, esi
shr ebp, 0x11
mov esi, edx
shr esi, 0x11
mov dword [edi - 0x4c], ebx
shl edx, 0xf
or ecx, esi
or edx, ebp
mov dword [edi - 0x48], ecx
mov dword [edi - 0x44], edx
mov ebp, eax
shl eax, 0xf
mov esi, ebx
shr esi, 0x11
shl ebx, 0xf
or eax, esi
mov esi, ecx
shl ecx, 0xf
mov dword [edi - 0x40], eax
shr esi, 0x11
or ebx, esi
shr ebp, 0x11
mov esi, edx
shr esi, 0x11
mov dword [edi - 0x3c], ebx
shl edx, 0xf
or ecx, esi
or edx, ebp
mov dword [edi - 0x38], ecx
mov dword [edi - 0x34], edx
mov ebp, eax
shl eax, 0xf
mov esi, ebx
shr esi, 0x11
shl ebx, 0xf
or eax, esi
mov esi, ecx
shl ecx, 0xf
mov dword [edi - 0x20], eax
shr esi, 0x11
or ebx, esi
shr ebp, 0x11
mov esi, edx
shr esi, 0x11
mov dword [edi - 0x1c], ebx
shl edx, 0xf
or ecx, esi
or edx, ebp
mov ebp, eax
shl eax, 0xf
mov esi, ebx
shr esi, 0x11
shl ebx, 0xf
or eax, esi
mov esi, ecx
shl ecx, 0xf
mov dword [edi - 0x10], eax
shr esi, 0x11
or ebx, esi
shr ebp, 0x11
mov esi, edx
shr esi, 0x11
mov dword [edi - 0xc], ebx
shl edx, 0xf
or ecx, esi
or edx, ebp
mov dword [edi - 8], ecx
mov dword [edi - 4], edx
mov ebp, ebx
shl ebx, 2
mov esi, ecx
shr esi, 0x1e
shl ecx, 2
or ebx, esi
mov esi, edx
shl edx, 2
mov dword [edi + 0x20], ebx
shr esi, 0x1e
or ecx, esi
shr ebp, 0x1e
mov esi, eax
shr esi, 0x1e
mov dword [edi + 0x24], ecx
shl eax, 2
or edx, esi
or eax, ebp
mov dword [edi + 0x28], edx
mov dword [edi + 0x2c], eax
mov ebp, ebx
shl ebx, 0x11
mov esi, ecx
shr esi, 0xf
shl ecx, 0x11
or ebx, esi
mov esi, edx
shl edx, 0x11
mov dword [edi + 0x40], ebx
shr esi, 0xf
or ecx, esi
shr ebp, 0xf
mov esi, eax
shr esi, 0xf
mov dword [edi + 0x44], ecx
shl eax, 0x11
or edx, esi
or eax, ebp
mov dword [edi + 0x48], edx
mov dword [edi + 0x4c], eax
mov ebx, dword [edi - 0x80]
mov ecx, dword [edi - 0x7c]
mov edx, dword [edi - 0x78]
mov eax, dword [edi - 0x74]
mov ebp, ebx
shl ebx, 0xf
mov esi, ecx
shr esi, 0x11
shl ecx, 0xf
or ebx, esi
mov esi, edx
shl edx, 0xf
mov dword [edi - 0x60], ebx
shr esi, 0x11
or ecx, esi
shr ebp, 0x11
mov esi, eax
shr esi, 0x11
mov dword [edi - 0x5c], ecx
shl eax, 0xf
or edx, esi
or eax, ebp
mov dword [edi - 0x58], edx
mov dword [edi - 0x54], eax
mov ebp, ebx
shl ebx, 0x1e
mov esi, ecx
shr esi, 2
shl ecx, 0x1e
or ebx, esi
mov esi, edx
shl edx, 0x1e
mov dword [edi - 0x30], ebx
shr esi, 2
or ecx, esi
shr ebp, 2
mov esi, eax
shr esi, 2
mov dword [edi - 0x2c], ecx
shl eax, 0x1e
or edx, esi
or eax, ebp
mov dword [edi - 0x28], edx
mov dword [edi - 0x24], eax
mov ebp, ebx
shl ebx, 0xf
mov esi, ecx
shr esi, 0x11
shl ecx, 0xf
or ebx, esi
mov esi, edx
shl edx, 0xf
shr esi, 0x11
or ecx, esi
shr ebp, 0x11
mov esi, eax
shr esi, 0x11
shl eax, 0xf
or edx, esi
or eax, ebp
mov dword [edi - 0x18], edx
mov dword [edi - 0x14], eax
mov ebp, ebx
shl ebx, 0x11
mov esi, ecx
shr esi, 0xf
shl ecx, 0x11
or ebx, esi
mov esi, edx
shl edx, 0x11
mov dword [edi], ebx
shr esi, 0xf
or ecx, esi
shr ebp, 0xf
mov esi, eax
shr esi, 0xf
mov dword [edi + 4], ecx
shl eax, 0x11
or edx, esi
or eax, ebp
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
mov ebp, ebx
shl ebx, 0x11
mov esi, ecx
shr esi, 0xf
shl ecx, 0x11
or ebx, esi
mov esi, edx
shl edx, 0x11
mov dword [edi + 0x10], ebx
shr esi, 0xf
or ecx, esi
shr ebp, 0xf
mov esi, eax
shr esi, 0xf
mov dword [edi + 0x14], ecx
shl eax, 0x11
or edx, esi
or eax, ebp
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], eax
mov ebp, ebx
shl ebx, 0x11
mov esi, ecx
shr esi, 0xf
shl ecx, 0x11
or ebx, esi
mov esi, edx
shl edx, 0x11
mov dword [edi + 0x30], ebx
shr esi, 0xf
or ecx, esi
shr ebp, 0xf
mov esi, eax
shr esi, 0xf
mov dword [edi + 0x34], ecx
shl eax, 0x11
or edx, esi
or eax, ebp
mov dword [edi + 0x38], edx
mov dword [edi + 0x3c], eax
mov eax, 3
jmp 0x509fbc
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], edx
xor eax, dword [esi + 0x20]
xor ebx, dword [esi + 0x24]
xor ecx, dword [esi + 0x28]
xor edx, dword [esi + 0x2c]
mov esi, dword [edi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
xor eax, esi
xor ebx, dword [edi + 0x24]
movzx esi, ah
mov edx, dword [ebp + esi*8 + 0x804]
movzx esi, al
xor edx, dword [ebp + esi*8 + 4]
shr eax, 0x10
movzx esi, bl
mov ecx, dword [ebp + esi*8]
movzx esi, ah
xor edx, dword [ebp + esi*8]
movzx esi, bh
xor ecx, dword [ebp + esi*8 + 4]
shr ebx, 0x10
movzx eax, al
xor edx, dword [ebp + eax*8 + 0x800]
movzx esi, bh
mov eax, dword [esp + 0xc]
xor ecx, edx
ror edx, 8
xor ecx, dword [ebp + esi*8 + 0x800]
movzx esi, bl
mov ebx, dword [esp + 8]
xor edx, eax
xor ecx, dword [ebp + esi*8 + 0x804]
mov esi, dword [edi + 0x28]
xor edx, ecx
mov dword [esp + 0xc], edx
xor ecx, ebx
mov dword [esp + 8], ecx
xor ecx, esi
xor edx, dword [edi + 0x2c]
movzx esi, ch
mov ebx, dword [ebp + esi*8 + 0x804]
movzx esi, cl
xor ebx, dword [ebp + esi*8 + 4]
shr ecx, 0x10
movzx esi, dl
mov eax, dword [ebp + esi*8]
movzx esi, ch
xor ebx, dword [ebp + esi*8]
movzx esi, dh
xor eax, dword [ebp + esi*8 + 4]
shr edx, 0x10
movzx ecx, cl
xor ebx, dword [ebp + ecx*8 + 0x800]
movzx esi, dh
mov ecx, dword [esp + 4]
xor eax, ebx
ror ebx, 8
xor eax, dword [ebp + esi*8 + 0x800]
movzx esi, dl
mov edx, dword [esp]
xor ebx, ecx
xor eax, dword [ebp + esi*8 + 0x804]
mov esi, dword [edi + 0x30]
xor ebx, eax
mov dword [esp + 4], ebx
xor eax, edx
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
lea edi, [edi + 0x80]
mov dword [edi - 0x70], eax
mov dword [edi - 0x6c], ebx
mov dword [edi - 0x68], ecx
mov dword [edi - 0x64], edx
mov ebp, eax
shl eax, 0x1e
mov esi, ebx
shr esi, 2
shl ebx, 0x1e
or eax, esi
mov esi, ecx
shl ecx, 0x1e
mov dword [edi - 0x30], eax
shr esi, 2
or ebx, esi
shr ebp, 2
mov esi, edx
shr esi, 2
mov dword [edi - 0x2c], ebx
shl edx, 0x1e
or ecx, esi
or edx, ebp
mov dword [edi - 0x28], ecx
mov dword [edi - 0x24], edx
mov ebp, eax
shl eax, 0x1e
mov esi, ebx
shr esi, 2
shl ebx, 0x1e
or eax, esi
mov esi, ecx
shl ecx, 0x1e
mov dword [edi + 0x20], eax
shr esi, 2
or ebx, esi
shr ebp, 2
mov esi, edx
shr esi, 2
mov dword [edi + 0x24], ebx
shl edx, 0x1e
or ecx, esi
or edx, ebp
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
mov ebp, ebx
shl ebx, 0x13
mov esi, ecx
shr esi, 0xd
shl ecx, 0x13
or ebx, esi
mov esi, edx
shl edx, 0x13
mov dword [edi + 0x80], ebx
shr esi, 0xd
or ecx, esi
shr ebp, 0xd
mov esi, eax
shr esi, 0xd
mov dword [edi + 0x84], ecx
shl eax, 0x13
or edx, esi
or eax, ebp
mov dword [edi + 0x88], edx
mov dword [edi + 0x8c], eax
mov ebx, dword [edi - 0x60]
mov ecx, dword [edi - 0x5c]
mov edx, dword [edi - 0x58]
mov eax, dword [edi - 0x54]
mov ebp, ebx
shl ebx, 0xf
mov esi, ecx
shr esi, 0x11
shl ecx, 0xf
or ebx, esi
mov esi, edx
shl edx, 0xf
mov dword [edi - 0x60], ebx
shr esi, 0x11
or ecx, esi
shr ebp, 0x11
mov esi, eax
shr esi, 0x11
mov dword [edi - 0x5c], ecx
shl eax, 0xf
or edx, esi
or eax, ebp
mov dword [edi - 0x58], edx
mov dword [edi - 0x54], eax
mov ebp, ebx
shl ebx, 0xf
mov esi, ecx
shr esi, 0x11
shl ecx, 0xf
or ebx, esi
mov esi, edx
shl edx, 0xf
mov dword [edi - 0x40], ebx
shr esi, 0x11
or ecx, esi
shr ebp, 0x11
mov esi, eax
shr esi, 0x11
mov dword [edi - 0x3c], ecx
shl eax, 0xf
or edx, esi
or eax, ebp
mov dword [edi - 0x38], edx
mov dword [edi - 0x34], eax
mov ebp, ebx
shl ebx, 0x1e
mov esi, ecx
shr esi, 2
shl ecx, 0x1e
or ebx, esi
mov esi, edx
shl edx, 0x1e
mov dword [edi + 0x10], ebx
shr esi, 2
or ecx, esi
shr ebp, 2
mov esi, eax
shr esi, 2
mov dword [edi + 0x14], ecx
shl eax, 0x1e
or edx, esi
or eax, ebp
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], eax
mov ebp, ecx
shl ecx, 2
mov esi, edx
shr esi, 0x1e
shl edx, 2
or ecx, esi
mov esi, eax
shl eax, 2
mov dword [edi + 0x50], ecx
shr esi, 0x1e
or edx, esi
shr ebp, 0x1e
mov esi, ebx
shr esi, 0x1e
mov dword [edi + 0x54], edx
shl ebx, 2
or eax, esi
or ebx, ebp
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], ebx
mov ecx, dword [edi - 0x50]
mov edx, dword [edi - 0x4c]
mov eax, dword [edi - 0x48]
mov ebx, dword [edi - 0x44]
mov ebp, ecx
shl ecx, 0xf
mov esi, edx
shr esi, 0x11
shl edx, 0xf
or ecx, esi
mov esi, eax
shl eax, 0xf
mov dword [edi - 0x50], ecx
shr esi, 0x11
or edx, esi
shr ebp, 0x11
mov esi, ebx
shr esi, 0x11
mov dword [edi - 0x4c], edx
shl ebx, 0xf
or eax, esi
or ebx, ebp
mov dword [edi - 0x48], eax
mov dword [edi - 0x44], ebx
mov ebp, ecx
shl ecx, 0x1e
mov esi, edx
shr esi, 2
shl edx, 0x1e
or ecx, esi
mov esi, eax
shl eax, 0x1e
mov dword [edi - 0x10], ecx
shr esi, 2
or edx, esi
shr ebp, 2
mov esi, ebx
shr esi, 2
mov dword [edi - 0xc], edx
shl ebx, 0x1e
or eax, esi
or ebx, ebp
mov dword [edi - 8], eax
mov dword [edi - 4], ebx
mov dword [edi + 0x40], edx
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], ebx
mov dword [edi + 0x4c], ecx
mov ebp, edx
shl edx, 0x11
mov esi, eax
shr esi, 0xf
shl eax, 0x11
or edx, esi
mov esi, ebx
shl ebx, 0x11
mov dword [edi + 0x60], edx
shr esi, 0xf
or eax, esi
shr ebp, 0xf
mov esi, ecx
shr esi, 0xf
mov dword [edi + 0x64], eax
shl ecx, 0x11
or ebx, esi
or ecx, ebp
mov dword [edi + 0x68], ebx
mov dword [edi + 0x6c], ecx
mov edx, dword [edi - 0x80]
mov eax, dword [edi - 0x7c]
mov ebx, dword [edi - 0x78]
mov ecx, dword [edi - 0x74]
mov ebp, eax
shl eax, 0xd
mov esi, ebx
shr esi, 0x13
shl ebx, 0xd
or eax, esi
mov esi, ecx
shl ecx, 0xd
mov dword [edi - 0x20], eax
shr esi, 0x13
or ebx, esi
shr ebp, 0x13
mov esi, edx
shr esi, 0x13
mov dword [edi - 0x1c], ebx
shl edx, 0xd
or ecx, esi
or edx, ebp
mov dword [edi - 0x18], ecx
mov dword [edi - 0x14], edx
mov ebp, eax
shl eax, 0xf
mov esi, ebx
shr esi, 0x11
shl ebx, 0xf
or eax, esi
mov esi, ecx
shl ecx, 0xf
mov dword [edi], eax
shr esi, 0x11
or ebx, esi
shr ebp, 0x11
mov esi, edx
shr esi, 0x11
mov dword [edi + 4], ebx
shl edx, 0xf
or ecx, esi
or edx, ebp
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov ebp, eax
shl eax, 0x11
mov esi, ebx
shr esi, 0xf
shl ebx, 0x11
or eax, esi
mov esi, ecx
shl ecx, 0x11
mov dword [edi + 0x30], eax
shr esi, 0xf
or ebx, esi
shr ebp, 0xf
mov esi, edx
shr esi, 0xf
mov dword [edi + 0x34], ebx
shl edx, 0x11
or ecx, esi
or edx, ebp
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], edx
mov ebp, ebx
shl ebx, 2
mov esi, ecx
shr esi, 0x1e
shl ecx, 2
or ebx, esi
mov esi, edx
shl edx, 2
mov dword [edi + 0x70], ebx
shr esi, 0x1e
or ecx, esi
shr ebp, 0x1e
mov esi, eax
shr esi, 0x1e
mov dword [edi + 0x74], ecx
shl eax, 2
or edx, esi
or eax, ebp
mov dword [edi + 0x78], edx
mov dword [edi + 0x7c], eax
mov eax, 4
lea edx, [edi + 0x90]
add esp, 0x10
pop edi
pop esi
pop ebx
pop ebp
ret