Function at 0x530310
Capabilities:
Encrypt data using aes
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x14
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
test eax, eax
jne 0x530340
mov eax, 0xffffffff
add esp, 0x14
pop ebx
pop esi
pop edi
pop ebp
ret
test edx, edx
je 0x530327
cmp edi, 0x80
je 0x530bb0
cmp edi, 0xc0
jne 0x5315b0
mov dword [edx + 0xf0], 0xc
xor ecx, ecx
mov cl, byte [eax + 3]
xor ebx, ebx
mov bl, byte [eax]
shl ebx, 0x18
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 1]
shl ebx, 0x10
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 2]
shl ebx, 8
xor ecx, ebx
mov dword [edx], ecx
lea ecx, [edx + 4]
mov dword [esp], ecx
mov bl, byte [eax + 4]
and ebx, 0xff
mov esi, ebx
shl esi, 0x18
xor ecx, ecx
mov cl, byte [eax + 5]
shl ecx, 0x10
xor esi, ecx
xor ecx, ecx
mov cl, byte [eax + 7]
xor esi, ecx
xor ecx, ecx
mov cl, byte [eax + 6]
shl ecx, 8
xor esi, ecx
mov dword [edx + 4], esi
lea ecx, [edx + 8]
mov dword [esp + 0x10], ecx
xor ebx, ebx
mov bl, byte [eax + 8]
shl ebx, 0x18
xor ecx, ecx
mov cl, byte [eax + 9]
shl ecx, 0x10
xor ebx, ecx
xor ecx, ecx
mov cl, byte [eax + 0xb]
xor ebx, ecx
xor ecx, ecx
mov cl, byte [eax + 0xa]
shl ecx, 8
xor ebx, ecx
mov dword [esp + 8], ebx
mov dword [edx + 8], ebx
lea ecx, [edx + 0xc]
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov cl, byte [eax + 0xc]
shl ecx, 0x18
mov bl, byte [eax + 0xd]
and ebx, 0xff
mov ebp, ebx
shl ebp, 0x10
xor ecx, ebp
mov bl, byte [eax + 0xf]
and ebx, 0xff
xor ecx, ebx
mov bl, byte [eax + 0xe]
and ebx, 0xff
mov ebp, ebx
shl ebp, 8
xor ecx, ebp
mov dword [edx + 0xc], ecx
cmp edi, 0x80
je 0x530bc0
lea ebx, [edx + 0x10]
mov dword [esp + 8], ebx
xor ecx, ecx
mov cl, byte [eax + 0x10]
shl ecx, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x11]
shl ebx, 0x10
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0x13]
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0x12]
shl ebx, 8
xor ecx, ebx
mov dword [edx + 0x10], ecx
lea ebp, [edx + 0x14]
xor ecx, ecx
mov cl, byte [eax + 0x14]
shl ecx, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x15]
shl ebx, 0x10
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0x17]
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0x16]
shl ebx, 8
xor ecx, ebx
mov dword [edx + 0x14], ecx
cmp edi, 0xc0
je 0x5310d0
xor ecx, ecx
mov cl, byte [eax + 0x18]
shl ecx, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x19]
shl ebx, 0x10
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0x1b]
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0x1a]
shl ebx, 8
xor ecx, ebx
mov dword [edx + 0x18], ecx
xor ecx, ecx
mov cl, byte [eax + 0x1c]
shl ecx, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x1d]
shl ebx, 0x10
xor ecx, ebx
xor ebx, ebx
mov bl, byte [eax + 0x1f]
xor ecx, ebx
mov al, byte [eax + 0x1e]
and eax, 0xff
shl eax, 8
xor ecx, eax
mov dword [edx + 0x1c], ecx
cmp edi, 0x100
je 0x530500
xor eax, eax
jmp 0x53032c
mov ebx, dword [esp]
mov ebx, dword [ebx]
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp], eax
mov ebx, dword [esp + 0xc]
mov edi, dword [ebx]
lea esi, [edx + 0x20]
movzx eax, cl
mov ebx, dword [eax*4 + 0x8b5380]
and ebx, 0xff00
mov eax, ecx
shr eax, 0x18
mov al, byte [eax*4 + 0x8b5780]
and eax, 0xff
xor ebx, eax
xor ebx, 0x1000000
mov eax, ecx
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5b80]
and eax, 0xff000000
xor ebx, eax
movzx ecx, ch
mov eax, dword [ecx*4 + 0x8b5f80]
and eax, 0xff0000
xor ebx, eax
xor ebx, dword [edx]
mov dword [edx + 0x20], ebx
xor dword [esp + 4], ebx
mov eax, dword [esp + 4]
mov dword [edx + 0x24], eax
xor dword [esp], eax
mov ecx, dword [esp]
mov dword [edx + 0x28], ecx
xor edi, ecx
mov dword [edx + 0x2c], edi
mov eax, edi
shr eax, 0x18
mov eax, dword [eax*4 + 0x8b5b80]
and eax, 0xff000000
mov ecx, edi
and ecx, 0xff
mov cl, byte [ecx*4 + 0x8b5780]
and ecx, 0xff
xor eax, ecx
mov ecx, dword [esp + 8]
xor eax, dword [ecx]
mov ecx, edi
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x8b5f80]
and ecx, 0xff0000
xor eax, ecx
mov ecx, edi
movzx ecx, ch
mov ecx, dword [ecx*4 + 0x8b5380]
and ecx, 0xff00
xor eax, ecx
mov dword [edx + 0x30], eax
xor eax, dword [ebp]
mov dword [edx + 0x34], eax
xor eax, dword [edx + 0x18]
mov dword [edx + 0x38], eax
xor eax, dword [edx + 0x1c]
mov dword [esp + 8], eax
mov dword [edx + 0x3c], eax
lea ecx, [edx + 0x40]
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 8]
shr ebp, 0x18
mov al, byte [ebp*4 + 0x8b5780]
and eax, 0xff
xor dword [esp + 0xc], eax
xor dword [esp + 0xc], 0x2000000
mov ebp, dword [esp + 8]
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor dword [esp + 0xc], ebp
mov eax, dword [esp + 8]
movzx ebp, ah
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor dword [esp + 0xc], ebp
xor dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xc]
mov dword [edx + 0x40], ebx
mov eax, dword [esp + 4]
xor eax, ebx
mov dword [esp + 4], eax
mov dword [esi + 0x24], eax
mov ebx, dword [esp]
xor ebx, eax
mov dword [esp], ebx
mov dword [esi + 0x28], ebx
xor edi, ebx
mov dword [esi + 0x2c], edi
mov ebx, edi
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x8b5b80]
and ebx, 0xff000000
mov ebp, edi
and ebp, 0xff
mov al, byte [ebp*4 + 0x8b5780]
and eax, 0xff
xor ebx, eax
xor ebx, dword [esi + 0x10]
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor ebx, ebp
mov eax, edi
movzx ebp, ah
mov ebp, dword [ebp*4 + 0x8b5380]
and ebp, 0xff00
xor ebx, ebp
mov dword [esi + 0x30], ebx
xor ebx, dword [esi + 0x14]
mov dword [esi + 0x34], ebx
xor ebx, dword [esi + 0x18]
mov dword [esi + 0x38], ebx
xor ebx, dword [edx + 0x3c]
mov dword [esi + 0x3c], ebx
mov dword [esp + 8], ebx
lea esi, [edx + 0x60]
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x8b5380]
and ebx, 0xff00
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 8]
shr ebp, 0x18
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor dword [esp + 0x10], ebx
xor dword [esp + 0x10], 0x4000000
mov ebp, dword [esp + 8]
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor dword [esp + 0x10], ebp
mov eax, dword [esp + 8]
movzx ebp, ah
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor dword [esp + 0x10], ebp
mov ebx, dword [esp + 0xc]
xor dword [esp + 0x10], ebx
mov eax, dword [esp + 0x10]
mov dword [edx + 0x60], eax
mov ebx, dword [esp + 4]
xor ebx, eax
mov dword [esp + 4], ebx
mov dword [ecx + 0x24], ebx
mov eax, dword [esp]
xor eax, ebx
mov dword [esp], eax
mov dword [ecx + 0x28], eax
xor edi, eax
mov dword [ecx + 0x2c], edi
mov eax, edi
shr eax, 0x18
mov eax, dword [eax*4 + 0x8b5b80]
and eax, 0xff000000
mov ebp, edi
and ebp, 0xff
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor eax, ebx
xor eax, dword [ecx + 0x10]
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor eax, ebp
mov ebx, edi
movzx ebp, bh
mov ebp, dword [ebp*4 + 0x8b5380]
and ebp, 0xff00
xor eax, ebp
mov dword [ecx + 0x30], eax
xor eax, dword [ecx + 0x14]
mov dword [ecx + 0x34], eax
xor eax, dword [ecx + 0x18]
mov dword [ecx + 0x38], eax
xor eax, dword [edx + 0x5c]
mov dword [ecx + 0x3c], eax
mov dword [esp + 8], eax
lea ecx, [edx + 0x80]
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 8]
shr ebp, 0x18
mov al, byte [ebp*4 + 0x8b5780]
and eax, 0xff
xor dword [esp + 0xc], eax
xor dword [esp + 0xc], 0x8000000
mov ebp, dword [esp + 8]
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor dword [esp + 0xc], ebp
mov ebx, dword [esp + 8]
movzx ebp, bh
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor dword [esp + 0xc], ebp
mov eax, dword [esp + 0x10]
xor dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
mov dword [edx + 0x80], ebx
mov eax, dword [esp + 4]
xor eax, ebx
mov dword [esp + 4], eax
mov dword [esi + 0x24], eax
mov ebx, dword [esp]
xor ebx, eax
mov dword [esp], ebx
mov dword [esi + 0x28], ebx
xor edi, ebx
mov dword [esi + 0x2c], edi
mov ebx, edi
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x8b5b80]
and ebx, 0xff000000
mov ebp, edi
and ebp, 0xff
mov al, byte [ebp*4 + 0x8b5780]
and eax, 0xff
xor ebx, eax
xor ebx, dword [esi + 0x10]
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor ebx, ebp
mov eax, edi
movzx ebp, ah
mov ebp, dword [ebp*4 + 0x8b5380]
and ebp, 0xff00
xor ebx, ebp
mov dword [esi + 0x30], ebx
xor ebx, dword [esi + 0x14]
mov dword [esi + 0x34], ebx
xor ebx, dword [esi + 0x18]
mov dword [esi + 0x38], ebx
xor ebx, dword [edx + 0x7c]
mov dword [esi + 0x3c], ebx
mov dword [esp + 8], ebx
lea esi, [edx + 0xa0]
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x8b5380]
and ebx, 0xff00
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 8]
shr ebp, 0x18
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor dword [esp + 0x10], ebx
xor dword [esp + 0x10], 0x10000000
mov ebp, dword [esp + 8]
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor dword [esp + 0x10], ebp
mov eax, dword [esp + 8]
movzx ebp, ah
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor dword [esp + 0x10], ebp
mov ebx, dword [esp + 0xc]
xor dword [esp + 0x10], ebx
mov eax, dword [esp + 0x10]
mov dword [edx + 0xa0], eax
mov ebx, dword [esp + 4]
xor ebx, eax
mov dword [esp + 4], ebx
mov dword [ecx + 0x24], ebx
mov eax, dword [esp]
xor eax, ebx
mov dword [esp], eax
mov dword [ecx + 0x28], eax
xor edi, eax
mov dword [ecx + 0x2c], edi
mov eax, edi
shr eax, 0x18
mov eax, dword [eax*4 + 0x8b5b80]
and eax, 0xff000000
mov ebp, edi
and ebp, 0xff
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor eax, ebx
xor eax, dword [ecx + 0x10]
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor eax, ebp
mov ebx, edi
movzx ebp, bh
mov ebp, dword [ebp*4 + 0x8b5380]
and ebp, 0xff00
xor eax, ebp
mov dword [ecx + 0x30], eax
xor eax, dword [ecx + 0x14]
mov dword [ecx + 0x34], eax
xor eax, dword [ecx + 0x18]
mov dword [ecx + 0x38], eax
xor eax, dword [edx + 0x9c]
mov dword [ecx + 0x3c], eax
mov ecx, eax
lea eax, [edx + 0xc0]
mov dword [esp + 0xc], eax
movzx eax, cl
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ebp, ecx
shr ebp, 0x18
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor eax, ebx
xor eax, 0x20000000
mov ebp, ecx
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor eax, ebp
movzx ebp, ch
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor eax, ebp
xor eax, dword [esp + 0x10]
mov dword [edx + 0xc0], eax
mov ecx, dword [esp + 4]
xor ecx, eax
mov dword [esp + 4], ecx
mov dword [esi + 0x24], ecx
mov ebx, dword [esp]
xor ebx, ecx
mov dword [esp], ebx
mov dword [esi + 0x28], ebx
xor edi, ebx
mov dword [esi + 0x2c], edi
mov ebx, edi
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x8b5b80]
and ebx, 0xff000000
mov ebp, edi
and ebp, 0xff
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor ebx, ecx
xor ebx, dword [esi + 0x10]
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor ebx, ebp
mov ecx, edi
movzx ebp, ch
mov ebp, dword [ebp*4 + 0x8b5380]
and ebp, 0xff00
xor ebx, ebp
mov dword [esi + 0x30], ebx
xor ebx, dword [esi + 0x14]
mov dword [esi + 0x34], ebx
xor ebx, dword [esi + 0x18]
mov dword [esi + 0x38], ebx
xor ebx, dword [edx + 0xbc]
mov dword [esi + 0x3c], ebx
movzx edx, bl
mov edx, dword [edx*4 + 0x8b5380]
and edx, 0xff00
mov esi, ebx
shr esi, 0x18
mov cl, byte [esi*4 + 0x8b5780]
and ecx, 0xff
xor edx, ecx
xor edx, 0x40000000
mov esi, ebx
shr esi, 0x10
and esi, 0xff
mov esi, dword [esi*4 + 0x8b5b80]
and esi, 0xff000000
xor edx, esi
movzx ebx, bh
mov ebx, dword [ebx*4 + 0x8b5f80]
and ebx, 0xff0000
xor edx, ebx
xor edx, eax
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x20], edx
xor edx, dword [esp + 4]
mov dword [ebx + 0x24], edx
xor edx, dword [esp]
mov dword [ebx + 0x28], edx
xor edi, edx
mov dword [ebx + 0x2c], edi
xor eax, eax
jmp 0x53032c
mov dword [edx + 0xf0], 0xa
jmp 0x530366
lea ebp, [edx + 0x10]
movzx eax, cl
mov edi, dword [eax*4 + 0x8b5380]
and edi, 0xff00
mov eax, ecx
shr eax, 0x18
mov al, byte [eax*4 + 0x8b5780]
and eax, 0xff
xor edi, eax
xor edi, 0x1000000
mov eax, ecx
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5b80]
and eax, 0xff000000
xor edi, eax
movzx ecx, ch
mov eax, dword [ecx*4 + 0x8b5f80]
and eax, 0xff0000
xor edi, eax
xor edi, dword [edx]
mov dword [edx + 0x10], edi
xor esi, edi
mov dword [esp + 4], esi
mov dword [edx + 0x14], esi
mov eax, dword [esp + 8]
xor eax, esi
mov dword [esp], eax
mov dword [edx + 0x18], eax
mov ecx, dword [edx + 0xc]
xor ecx, eax
mov dword [edx + 0x1c], ecx
lea ebx, [edx + 0x20]
mov dword [esp + 8], ebx
movzx eax, cl
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov esi, ecx
shr esi, 0x18
mov bl, byte [esi*4 + 0x8b5780]
and ebx, 0xff
xor eax, ebx
xor eax, 0x2000000
mov esi, ecx
shr esi, 0x10
and esi, 0xff
mov esi, dword [esi*4 + 0x8b5b80]
and esi, 0xff000000
xor eax, esi
movzx esi, ch
mov esi, dword [esi*4 + 0x8b5f80]
and esi, 0xff0000
xor eax, esi
xor eax, edi
mov dword [edx + 0x20], eax
mov ebx, dword [esp + 4]
xor ebx, eax
mov dword [esp + 4], ebx
mov dword [ebp + 0x14], ebx
mov ebx, dword [esp]
xor ebx, dword [esp + 4]
mov dword [esp], ebx
mov dword [ebp + 0x18], ebx
xor ecx, ebx
mov dword [ebp + 0x1c], ecx
lea edi, [edx + 0x30]
movzx esi, cl
mov esi, dword [esi*4 + 0x8b5380]
and esi, 0xff00
mov ebp, ecx
shr ebp, 0x18
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor esi, ebx
xor esi, 0x4000000
mov ebp, ecx
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor esi, ebp
movzx ebp, ch
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor esi, ebp
xor esi, eax
mov dword [edx + 0x30], esi
mov eax, dword [esp + 4]
xor eax, esi
mov dword [esp + 4], eax
mov ebx, dword [esp + 8]
mov dword [ebx + 0x14], eax
mov ebx, dword [esp]
xor ebx, eax
mov dword [esp], ebx
mov eax, dword [esp + 8]
mov dword [eax + 0x18], ebx
xor ecx, ebx
mov dword [eax + 0x1c], ecx
lea ebx, [edx + 0x40]
mov dword [esp + 8], ebx
movzx eax, cl
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ebp, ecx
shr ebp, 0x18
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor eax, ebx
xor eax, 0x8000000
mov ebp, ecx
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor eax, ebp
movzx ebp, ch
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor eax, ebp
xor eax, esi
mov dword [edx + 0x40], eax
mov ebx, dword [esp + 4]
xor ebx, eax
mov dword [esp + 4], ebx
mov dword [edi + 0x14], ebx
mov ebx, dword [esp]
xor ebx, dword [esp + 4]
mov dword [esp], ebx
mov dword [edi + 0x18], ebx
xor ecx, ebx
mov dword [edi + 0x1c], ecx
lea edi, [edx + 0x50]
movzx esi, cl
mov esi, dword [esi*4 + 0x8b5380]
and esi, 0xff00
mov ebp, ecx
shr ebp, 0x18
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor esi, ebx
xor esi, 0x10000000
mov ebp, ecx
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor esi, ebp
movzx ebp, ch
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor esi, ebp
xor esi, eax
mov dword [edx + 0x50], esi
mov eax, dword [esp + 4]
xor eax, esi
mov dword [esp + 4], eax
mov ebx, dword [esp + 8]
mov dword [ebx + 0x14], eax
mov ebx, dword [esp]
xor ebx, eax
mov dword [esp], ebx
mov eax, dword [esp + 8]
mov dword [eax + 0x18], ebx
xor ecx, ebx
mov dword [eax + 0x1c], ecx
lea ebp, [edx + 0x60]
movzx eax, cl
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ebx, ecx
shr ebx, 0x18
mov bl, byte [ebx*4 + 0x8b5780]
and ebx, 0xff
xor eax, ebx
xor eax, 0x20000000
mov ebx, ecx
shr ebx, 0x10
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x8b5b80]
and ebx, 0xff000000
xor eax, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x8b5f80]
and ebx, 0xff0000
xor eax, ebx
xor eax, esi
mov dword [edx + 0x60], eax
mov ebx, dword [esp + 4]
xor ebx, eax
mov dword [esp + 4], ebx
mov dword [edi + 0x14], ebx
mov ebx, dword [esp]
xor ebx, dword [esp + 4]
mov dword [esp], ebx
mov dword [edi + 0x18], ebx
xor ecx, ebx
mov dword [edi + 0x1c], ecx
mov dword [esp + 8], ecx
lea esi, [edx + 0x70]
movzx ebx, cl
mov ebx, dword [ebx*4 + 0x8b5380]
and ebx, 0xff00
mov edi, ecx
shr edi, 0x18
mov cl, byte [edi*4 + 0x8b5780]
and ecx, 0xff
xor ebx, ecx
xor ebx, 0x40000000
mov edi, dword [esp + 8]
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x8b5b80]
and edi, 0xff000000
xor ebx, edi
mov ecx, dword [esp + 8]
movzx edi, ch
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor ebx, edi
xor ebx, eax
mov dword [edx + 0x70], ebx
mov eax, dword [esp + 4]
xor eax, ebx
mov dword [esp + 4], eax
mov dword [ebp + 0x14], eax
mov ecx, dword [esp]
xor ecx, eax
mov dword [esp], ecx
mov dword [ebp + 0x18], ecx
mov ecx, dword [esp + 8]
xor ecx, dword [esp]
mov dword [ebp + 0x1c], ecx
mov eax, ecx
lea edi, [edx + 0x80]
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x8b5380]
and ecx, 0xff00
mov dword [esp + 8], ecx
mov ebp, eax
shr ebp, 0x18
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor dword [esp + 8], ecx
mov ecx, dword [esp + 8]
sub ecx, 0x80000000
mov ebp, eax
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor ecx, ebp
movzx ebp, ah
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor ecx, ebp
xor ecx, ebx
mov dword [edx + 0x80], ecx
mov ebx, dword [esp + 4]
xor ebx, ecx
mov dword [esp + 4], ebx
mov dword [esi + 0x14], ebx
mov ebx, dword [esp]
xor ebx, dword [esp + 4]
mov dword [esp], ebx
mov dword [esi + 0x18], ebx
xor ebx, eax
mov dword [esi + 0x1c], ebx
mov dword [esp + 8], ebx
lea esi, [edx + 0x90]
movzx eax, bl
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ebp, ebx
shr ebp, 0x18
mov bl, byte [ebp*4 + 0x8b5780]
and ebx, 0xff
xor eax, ebx
xor eax, 0x1b000000
mov ebp, dword [esp + 8]
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor eax, ebp
mov ebx, dword [esp + 8]
movzx ebp, bh
mov ebp, dword [ebp*4 + 0x8b5f80]
and ebp, 0xff0000
xor eax, ebp
xor eax, ecx
mov dword [edx + 0x90], eax
mov edx, dword [esp + 4]
xor edx, eax
mov dword [esp + 4], edx
mov dword [edi + 0x14], edx
mov ebp, dword [esp]
xor ebp, edx
mov dword [edi + 0x18], ebp
xor ebx, ebp
mov dword [edi + 0x1c], ebx
movzx edx, bl
mov edx, dword [edx*4 + 0x8b5380]
and edx, 0xff00
mov edi, ebx
shr edi, 0x18
mov cl, byte [edi*4 + 0x8b5780]
and ecx, 0xff
xor edx, ecx
xor edx, 0x36000000
mov edi, ebx
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x8b5b80]
and edi, 0xff000000
xor edx, edi
movzx edi, bh
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor edx, edi
xor edx, eax
mov dword [esi + 0x10], edx
xor edx, dword [esp + 4]
mov dword [esi + 0x14], edx
xor ebp, edx
mov dword [esi + 0x18], ebp
xor ebp, ebx
mov dword [esi + 0x1c], ebp
xor eax, eax
jmp 0x53032c
mov eax, dword [esp]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov ebx, dword [esp + 0xc]
mov ebx, dword [ebx]
mov dword [esp], ebx
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 4], eax
lea esi, [edx + 0x18]
movzx eax, cl
mov ebx, dword [eax*4 + 0x8b5380]
and ebx, 0xff00
mov eax, ecx
shr eax, 0x18
mov al, byte [eax*4 + 0x8b5780]
and eax, 0xff
xor ebx, eax
xor ebx, 0x1000000
mov eax, ecx
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5b80]
and eax, 0xff000000
xor ebx, eax
movzx ecx, ch
mov eax, dword [ecx*4 + 0x8b5f80]
and eax, 0xff0000
xor ebx, eax
xor ebx, dword [edx]
mov dword [edx + 0x18], ebx
xor dword [esp + 8], ebx
mov ecx, dword [esp + 8]
mov dword [edx + 0x1c], ecx
xor dword [esp + 4], ecx
mov eax, dword [esp + 4]
mov dword [edx + 0x20], eax
xor dword [esp], eax
mov ecx, dword [esp]
mov dword [edx + 0x24], ecx
xor ecx, dword [edx + 0x10]
mov dword [esp + 0xc], ecx
mov dword [edx + 0x28], ecx
mov edi, dword [edx + 0x14]
xor edi, ecx
mov dword [edx + 0x2c], edi
lea eax, [edx + 0x30]
mov dword [esp + 0x10], eax
mov eax, edi
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ebp, edi
shr ebp, 0x18
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor eax, ecx
xor eax, 0x2000000
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor eax, ebp
mov ecx, edi
movzx edi, ch
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor eax, edi
xor eax, ebx
mov dword [edx + 0x30], eax
mov ebx, dword [esp + 8]
xor ebx, eax
mov dword [esp + 8], ebx
mov dword [esi + 0x1c], ebx
mov ecx, dword [esp + 4]
xor ecx, ebx
mov dword [esp + 4], ecx
mov dword [esi + 0x20], ecx
mov ebx, dword [esp]
xor ebx, ecx
mov dword [esp], ebx
mov dword [esi + 0x24], ebx
mov edi, dword [esp + 0xc]
xor edi, ebx
mov dword [esi + 0x28], edi
xor edi, dword [edx + 0x2c]
mov dword [esi + 0x2c], edi
lea esi, [edx + 0x48]
mov ebx, edi
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x8b5380]
and ebx, 0xff00
mov ebp, edi
shr ebp, 0x18
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor ebx, ecx
xor ebx, 0x4000000
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor ebx, ebp
mov ecx, edi
movzx edi, ch
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor ebx, edi
xor ebx, eax
mov dword [edx + 0x48], ebx
mov eax, dword [esp + 8]
xor eax, ebx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esp + 4]
xor ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x10]
mov dword [eax + 0x20], ecx
mov eax, dword [esp]
xor eax, ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x24], eax
mov edi, dword [ecx + 0x10]
xor edi, eax
mov dword [ecx + 0x28], edi
xor edi, dword [edx + 0x44]
mov dword [ecx + 0x2c], edi
lea eax, [edx + 0x60]
mov dword [esp + 0xc], eax
mov eax, edi
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ebp, edi
shr ebp, 0x18
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor eax, ecx
xor eax, 0x8000000
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor eax, ebp
mov ecx, edi
movzx edi, ch
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor eax, edi
xor eax, ebx
mov dword [edx + 0x60], eax
mov ebx, dword [esp + 8]
xor ebx, eax
mov dword [esp + 8], ebx
mov dword [esi + 0x1c], ebx
mov ecx, dword [esp + 4]
xor ecx, ebx
mov dword [esp + 4], ecx
mov dword [esi + 0x20], ecx
mov ebx, dword [esp]
xor ebx, ecx
mov dword [esp], ebx
mov dword [esi + 0x24], ebx
mov edi, dword [esi + 0x10]
xor edi, ebx
mov dword [esi + 0x28], edi
xor edi, dword [edx + 0x5c]
mov dword [esi + 0x2c], edi
lea esi, [edx + 0x78]
mov ebx, edi
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x8b5380]
and ebx, 0xff00
mov ebp, edi
shr ebp, 0x18
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor ebx, ecx
xor ebx, 0x10000000
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor ebx, ebp
mov ecx, edi
movzx edi, ch
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor ebx, edi
xor ebx, eax
mov dword [edx + 0x78], ebx
mov eax, dword [esp + 8]
xor eax, ebx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esp + 4]
xor ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x20], ecx
mov eax, dword [esp]
xor eax, ecx
mov dword [esp], eax
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x24], eax
mov edi, dword [ecx + 0x10]
xor edi, eax
mov dword [ecx + 0x28], edi
xor edi, dword [edx + 0x74]
mov dword [ecx + 0x2c], edi
lea eax, [edx + 0x90]
mov dword [esp + 0xc], eax
mov eax, edi
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ebp, edi
shr ebp, 0x18
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor eax, ecx
xor eax, 0x20000000
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor eax, ebp
mov ecx, edi
movzx edi, ch
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor eax, edi
xor eax, ebx
mov dword [edx + 0x90], eax
mov ebx, dword [esp + 8]
xor ebx, eax
mov dword [esp + 8], ebx
mov dword [esi + 0x1c], ebx
mov ecx, dword [esp + 4]
xor ecx, ebx
mov dword [esp + 4], ecx
mov dword [esi + 0x20], ecx
mov ebx, dword [esp]
xor ebx, ecx
mov dword [esp], ebx
mov dword [esi + 0x24], ebx
mov edi, dword [esi + 0x10]
xor edi, ebx
mov dword [esi + 0x28], edi
xor edi, dword [edx + 0x8c]
mov dword [esi + 0x2c], edi
lea esi, [edx + 0xa8]
mov ebx, edi
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x8b5380]
and ebx, 0xff00
mov ebp, edi
shr ebp, 0x18
mov cl, byte [ebp*4 + 0x8b5780]
and ecx, 0xff
xor ebx, ecx
xor ebx, 0x40000000
mov ebp, edi
shr ebp, 0x10
and ebp, 0xff
mov ebp, dword [ebp*4 + 0x8b5b80]
and ebp, 0xff000000
xor ebx, ebp
mov ecx, edi
movzx edi, ch
mov edi, dword [edi*4 + 0x8b5f80]
and edi, 0xff0000
xor ebx, edi
xor ebx, eax
mov dword [edx + 0xa8], ebx
mov ebp, dword [esp + 8]
xor ebp, ebx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x1c], ebp
mov edi, dword [esp + 4]
xor edi, ebp
mov dword [eax + 0x20], edi
mov ecx, dword [esp]
xor ecx, edi
mov dword [esp], ecx
mov dword [eax + 0x24], ecx
mov eax, ecx
mov ecx, dword [esp + 0xc]
xor eax, dword [ecx + 0x10]
mov dword [ecx + 0x28], eax
xor eax, dword [edx + 0xa4]
mov edx, eax
mov dword [ecx + 0x2c], eax
and eax, 0xff
mov eax, dword [eax*4 + 0x8b5380]
and eax, 0xff00
mov ecx, edx
shr ecx, 0x18
mov cl, byte [ecx*4 + 0x8b5780]
and ecx, 0xff
xor eax, ecx
sub eax, 0x80000000
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x8b5b80]
and ecx, 0xff000000
xor eax, ecx
movzx edx, dh
mov edx, dword [edx*4 + 0x8b5f80]
and edx, 0xff0000
xor eax, edx
xor eax, ebx
mov dword [esi + 0x18], eax
xor eax, ebp
mov dword [esi + 0x1c], eax
xor edi, eax
mov dword [esi + 0x20], edi
xor edi, dword [esp]
mov dword [esi + 0x24], edi
xor eax, eax
jmp 0x53032c
cmp edi, 0x100
je 0x5315c2
mov eax, 0xfffffffe
jmp 0x53032c
mov dword [edx + 0xf0], 0xe
jmp 0x530366