Function at 0x4a1320
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
mov dword [esp + 0x14], ecx
push edi
lea ecx, [esp + 0x1c]
call fcn.004a1270
mov ecx, dword [esp + 0x34]
mov edx, ecx
shr edx, 2
xor eax, eax
test edx, edx
je 0x4a135f
mov esi, dword [esp + 0x30]
jmp 0x4a1350
mov edi, dword [esi + eax*4]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + eax*4], edi
inc eax
cmp eax, edx
jne 0x4a1350
mov eax, dword [esp + 0x1c]
and ecx, 3
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov esi, 1
shl esi, cl
or dword [eax + edx*4], esi
mov edx, 8
mov eax, 0xc
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + ecx - 0xc]
xor esi, dword [eax + ecx + 8]
lea edi, [edx - 8]
xor esi, dword [eax + ecx]
inc edx
xor esi, dword [eax + ecx + 0x10]
add eax, 4
xor esi, edi
xor esi, 0x9e3779b9
rol esi, 0xb
mov dword [eax + ecx + 0x10], esi
cmp edx, 0x8c
jne 0x4a1380
mov ebx, dword [esp + 0x1c]
mov ebp, dword [ebx + 0x28]
mov edi, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x20]
lea edx, [ebx + 0x28]
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 0x2c]
lea eax, [ebx + 0x2c]
mov dword [esp + 0x14], eax
mov eax, ecx
or ecx, edx
xor edx, edi
and edi, eax
xor eax, ebp
xor ebp, edx
and edx, ecx
or eax, edi
xor edx, eax
lea esi, [ebx + 0x24]
xor ecx, edi
mov dword [esp + 0x30], esi
mov esi, edx
xor esi, edi
or esi, ecx
mov dword [esp + 0x34], edx
xor esi, ebp
or edx, esi
xor edx, dword [esp + 0x34]
and eax, ecx
xor edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x20], edx
mov edx, dword [esp + 0x30]
mov dword [edx], esi
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
mov dword [esi], edx
xor eax, ebp
mov dword [ecx], eax
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebx + 0x34]
mov eax, dword [ebx + 0x30]
mov esi, dword [ebx + 0x3c]
lea edx, [ebx + 0x34]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x38]
lea ecx, [ebx + 0x38]
mov dword [esp + 0x10], ecx
mov ecx, edx
and ecx, eax
xor ecx, esi
xor edx, edi
xor edx, ecx
mov dword [esp + 0x34], esi
mov esi, eax
or esi, dword [esp + 0x34]
xor eax, edx
xor esi, edi
mov dword [esp + 0x30], edx
mov edi, eax
mov edx, esi
and edx, ecx
xor eax, edx
mov edx, dword [esp + 0x30]
or edi, esi
xor edi, ecx
mov ecx, eax
xor ecx, edi
xor esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x30], edx
mov edx, dword [esp + 0x10]
mov dword [ecx], edi
not eax
mov dword [edx], esi
mov dword [ebx + 0x3c], eax
mov esi, dword [esp + 0x1c]
lea ecx, [esi + 0x48]
lea ebp, [esi + 0x4c]
mov dword [esp + 0x30], ecx
lea eax, [esi + 0x44]
mov edx, dword [eax]
mov ecx, dword [ecx]
mov edi, dword [ebp]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x40]
not eax
not ecx
mov ebx, eax
and eax, edx
xor ecx, eax
or eax, edi
xor edx, eax
xor edi, ecx
xor eax, ebx
or ecx, eax
or ebx, edx
and ecx, ebx
mov dword [esi + 0x40], ecx
xor edx, edi
xor eax, edx
mov esi, ecx
and esi, eax
and ecx, edx
xor esi, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx], esi
mov esi, dword [esp + 0x30]
mov dword [esi], edi
xor ecx, eax
mov dword [ebp], ecx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x58]
mov edi, dword [ebx + 0x54]
mov edx, dword [ebx + 0x50]
lea eax, [ebx + 0x58]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x5c]
xor eax, edx
mov dword [esp + 0x34], edx
lea ecx, [ebx + 0x54]
mov dword [esp + 0x30], ecx
mov ecx, esi
xor ecx, edi
mov edx, eax
and edx, edi
xor edx, dword [esp + 0x34]
mov edi, eax
or edi, dword [esp + 0x34]
xor edi, ecx
xor ecx, eax
xor eax, esi
or esi, edx
xor esi, ecx
not ecx
or ecx, edx
mov dword [esp + 0x34], esi
mov esi, ecx
xor esi, eax
xor edx, esi
or eax, edi
mov esi, eax
xor esi, edx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x50], esi
xor ecx, eax
mov eax, dword [esp + 0x30]
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx], ecx
mov dword [ebx + 0x5c], edi
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0x60]
lea eax, [ebx + 0x68]
lea ecx, [ebx + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [esp + 0x34], edx
mov edx, dword [ecx]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0x6c]
mov esi, eax
or esi, edx
xor esi, ecx
xor edx, eax
xor eax, esi
mov edi, edx
xor edx, eax
or edi, ecx
and edi, dword [esp + 0x34]
mov ecx, edx
or ecx, esi
xor ecx, dword [esp + 0x34]
xor edi, esi
xor ecx, edx
mov esi, edx
or esi, dword [esp + 0x34]
xor esi, eax
xor eax, ecx
and ecx, esi
xor ecx, edx
not eax
or eax, esi
xor eax, edx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x60], eax
mov eax, dword [esp + 0x30]
mov dword [eax], edi
mov dword [edx], ecx
mov dword [ebx + 0x6c], esi
mov ebp, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x78]
mov edi, dword [ebp + 0x74]
mov edx, dword [ebp + 0x70]
lea eax, [ebp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
lea ecx, [ebp + 0x78]
mov dword [esp + 0x30], ecx
mov ecx, eax
and eax, edx
xor edx, ecx
not ebx
xor eax, ebx
xor edi, eax
lea esi, [ebp + 0x74]
mov dword [esp + 0x34], esi
mov esi, ecx
or esi, ebx
xor esi, edx
or edx, edi
xor ecx, edx
mov ebx, eax
xor ecx, eax
or ebx, edx
mov edx, dword [esp + 0x34]
xor esi, edi
xor ebx, esi
mov dword [ebp + 0x70], ebx
mov dword [edx], edi
mov edx, dword [esp + 0x30]
xor ecx, ebx
mov dword [edx], ecx
and ecx, esi
not eax
xor ecx, eax
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x8c]
mov edx, dword [ebx + 0x80]
lea ecx, [ebx + 0x84]
mov dword [esp + 0x34], ecx
mov ecx, dword [ecx]
lea eax, [ebx + 0x88]
xor edx, ecx
xor ecx, esi
mov dword [esp + 0x30], eax
mov eax, dword [eax]
not esi
mov edi, ecx
xor eax, esi
and ecx, edx
xor ecx, eax
or eax, edi
xor edi, esi
xor edi, eax
xor eax, edx
mov dword [ebx + 0x80], ecx
and esi, ecx
xor esi, edx
xor edi, ecx
mov ecx, dword [esp + 0x34]
mov dword [ecx], esi
not eax
mov dword [esp + 0x14], eax
mov eax, esi
and eax, edx
mov edx, dword [esp + 0x30]
xor eax, edi
mov dword [edx], eax
or edi, esi
xor edi, dword [esp + 0x14]
mov dword [ebx + 0x8c], edi
mov ebp, dword [esp + 0x1c]
mov edi, dword [ebp + 0x98]
mov ecx, dword [ebp + 0x90]
lea eax, [ebp + 0x9c]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
lea edx, [ebp + 0x94]
mov dword [esp + 0x30], edx
mov edx, dword [edx]
xor edx, eax
lea esi, [ebp + 0x98]
not eax
xor edi, eax
xor eax, ecx
mov dword [esp + 0x14], esi
mov esi, eax
and esi, edx
xor edx, eax
xor ecx, edx
mov ebx, edx
xor esi, edi
and ebx, edi
xor ebx, ecx
and ecx, esi
xor eax, ecx
or edx, esi
xor edx, ecx
mov edi, eax
or edi, ecx
mov ecx, eax
mov dword [ebp + 0x90], esi
and ecx, ebx
xor ecx, edx
mov edx, dword [esp + 0x30]
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor edi, ebx
not edi
mov dword [ecx], edi
mov dword [edx], eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [ebx + 0xa8]
mov ecx, dword [ebx + 0xa0]
mov edi, dword [ebx + 0xa4]
lea edx, [ebx + 0xa8]
lea eax, [ebx + 0xac]
mov dword [esp + 0x14], edx
mov edx, dword [eax]
mov dword [esp + 0x10], eax
lea esi, [ebx + 0xa4]
mov eax, ecx
or ecx, edx
xor edx, edi
and edi, eax
xor eax, ebp
xor ebp, edx
or eax, edi
mov dword [esp + 0x30], esi
and edx, ecx
xor edx, eax
xor ecx, edi
mov esi, edx
xor esi, edi
or esi, ecx
mov dword [esp + 0x34], edx
and eax, ecx
xor esi, ebp
or edx, esi
xor edx, dword [esp + 0x34]
xor eax, ebp
xor edx, ecx
mov dword [ebx + 0xa0], edx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov dword [edx], esi
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov dword [esi], edx
mov dword [ecx], eax
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebx + 0xb4]
mov eax, dword [ebx + 0xb0]
mov esi, dword [ebx + 0xbc]
lea edx, [ebx + 0xb4]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0xb8]
lea ecx, [ebx + 0xb8]
mov dword [esp + 0x10], ecx
mov ecx, edx
and ecx, eax
xor ecx, esi
xor edx, edi
xor edx, ecx
mov dword [esp + 0x34], esi
mov esi, eax
or esi, dword [esp + 0x34]
xor eax, edx
xor esi, edi
mov dword [esp + 0x30], edx
mov edi, eax
or edi, esi
xor edi, ecx
mov edx, esi
and edx, ecx
xor eax, edx
mov edx, dword [esp + 0x30]
mov ecx, eax
xor ecx, edi
mov dword [ebx + 0xb0], edx
mov edx, dword [esp + 0x10]
xor esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
not eax
mov dword [edx], esi
mov dword [ebx + 0xbc], eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0xc4]
mov edi, dword [esi + 0xcc]
lea eax, [esi + 0xc4]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc0]
lea ecx, [esi + 0xc8]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx]
not eax
mov ebx, eax
and eax, edx
not ecx
xor ecx, eax
lea ebp, [esi + 0xcc]
or eax, edi
xor edx, eax
xor edi, ecx
xor eax, ebx
or ebx, edx
or ecx, eax
xor edx, edi
and ecx, ebx
xor eax, edx
mov dword [esi + 0xc0], ecx
mov esi, ecx
and esi, eax
and ecx, edx
xor ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx], esi
mov esi, dword [esp + 0x30]
mov dword [esi], edi
mov dword [ebp], ecx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0xd8]
mov edi, dword [ebx + 0xd4]
mov edx, dword [ebx + 0xd0]
mov dword [esp + 0x34], edx
lea eax, [ebx + 0xd8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xdc]
xor eax, edx
mov edx, eax
and edx, edi
xor edx, dword [esp + 0x34]
lea ecx, [ebx + 0xd4]
mov dword [esp + 0x30], ecx
mov ecx, esi
xor ecx, edi
mov edi, eax
or edi, dword [esp + 0x34]
xor edi, ecx
xor ecx, eax
xor eax, esi
or esi, edx
xor esi, ecx
mov dword [esp + 0x34], esi
not ecx
or ecx, edx
mov esi, ecx
xor esi, eax
xor edx, esi
or eax, edi
xor ecx, eax
mov esi, eax
mov eax, dword [esp + 0x30]
xor esi, edx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0xd0], esi
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx], ecx
mov dword [ebx + 0xdc], edi
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0xe0]
lea eax, [ebx + 0xe8]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0xe4]
lea ecx, [ebx + 0xe4]
mov esi, eax
or esi, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0xec]
xor esi, ecx
xor edx, eax
xor eax, esi
mov edi, edx
or edi, ecx
and edi, dword [esp + 0x34]
xor edx, eax
xor edi, esi
mov ecx, edx
or ecx, esi
xor ecx, dword [esp + 0x34]
mov esi, edx
or esi, dword [esp + 0x34]
xor ecx, edx
xor esi, eax
xor eax, ecx
not eax
or eax, esi
xor eax, edx
mov dword [ebx + 0xe0], eax
mov eax, dword [esp + 0x30]
mov dword [eax], edi
and ecx, esi
xor ecx, edx
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
mov dword [ebx + 0xec], esi
mov ebp, dword [esp + 0x1c]
mov ebx, dword [ebp + 0xf8]
mov edi, dword [ebp + 0xf4]
mov edx, dword [ebp + 0xf0]
lea eax, [ebp + 0xfc]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
lea ecx, [ebp + 0xf8]
mov dword [esp + 0x30], ecx
mov ecx, eax
and eax, edx
xor edx, ecx
not ebx
xor eax, ebx
xor edi, eax
lea esi, [ebp + 0xf4]
mov dword [esp + 0x34], esi
mov esi, ecx
or esi, ebx
xor esi, edx
or edx, edi
xor ecx, edx
xor ecx, eax
mov ebx, eax
xor esi, edi
or ebx, edx
mov edx, dword [esp + 0x34]
xor ebx, esi
mov dword [ebp + 0xf0], ebx
mov dword [edx], edi
mov edx, dword [esp + 0x30]
xor ecx, ebx
mov dword [edx], ecx
and ecx, esi
not eax
xor ecx, eax
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x10c]
mov edx, dword [ebx + 0x100]
lea ecx, [ebx + 0x104]
mov dword [esp + 0x34], ecx
mov ecx, dword [ecx]
xor edx, ecx
xor ecx, esi
lea eax, [ebx + 0x108]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
not esi
xor eax, esi
mov edi, ecx
and ecx, edx
xor ecx, eax
or eax, edi
xor edi, esi
xor edi, eax
xor eax, edx
and esi, ecx
not eax
xor esi, edx
mov dword [esp + 0x14], eax
xor edi, ecx
mov eax, esi
and eax, edx
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x100], ecx
mov ecx, dword [esp + 0x34]
xor eax, edi
mov dword [ecx], esi
mov dword [edx], eax
or edi, esi
xor edi, dword [esp + 0x14]
mov dword [ebx + 0x10c], edi
mov ebp, dword [esp + 0x1c]
mov edi, dword [ebp + 0x118]
mov ecx, dword [ebp + 0x110]
lea eax, [ebp + 0x11c]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
lea edx, [ebp + 0x114]
mov dword [esp + 0x30], edx
mov edx, dword [edx]
xor edx, eax
not eax
xor edi, eax
xor eax, ecx
lea esi, [ebp + 0x118]
mov dword [esp + 0x14], esi
mov esi, eax
and esi, edx
xor edx, eax
xor ecx, edx
mov ebx, edx
xor esi, edi
or edx, esi
and ebx, edi
xor ebx, ecx
and ecx, esi
xor edx, ecx
xor eax, ecx
mov dword [ebp + 0x110], esi
mov edi, eax
or edi, ecx
mov ecx, eax
and ecx, ebx
xor ecx, edx
mov edx, dword [esp + 0x30]
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor edi, ebx
not edi
mov dword [ecx], edi
mov dword [edx], eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [ebx + 0x128]
mov edi, dword [ebx + 0x124]
mov ecx, dword [ebx + 0x120]
lea edx, [ebx + 0x128]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x12c]
lea eax, [ebx + 0x12c]
mov dword [esp + 0x10], eax
lea esi, [ebx + 0x124]
mov eax, ecx
or ecx, edx
xor edx, edi
and edi, eax
xor eax, ebp
xor ebp, edx
and edx, ecx
mov dword [esp + 0x30], esi
or eax, edi
xor edx, eax
mov esi, edx
xor ecx, edi
xor esi, edi
or esi, ecx
mov dword [esp + 0x34], edx
xor esi, ebp
or edx, esi
xor edx, dword [esp + 0x34]
and eax, ecx
xor edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x120], edx
mov edx, dword [esp + 0x30]
mov dword [edx], esi
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov dword [esi], edx
xor eax, ebp
mov dword [ecx], eax
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebx + 0x134]
mov eax, dword [ebx + 0x130]
mov esi, dword [ebx + 0x13c]
lea edx, [ebx + 0x134]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x138]
lea ecx, [ebx + 0x138]
mov dword [esp + 0x10], ecx
mov ecx, edx
and ecx, eax
xor ecx, esi
xor edx, edi
xor edx, ecx
mov dword [esp + 0x34], esi
mov esi, eax
or esi, dword [esp + 0x34]
xor eax, edx
xor esi, edi
mov dword [esp + 0x30], edx
mov edi, eax
or edi, esi
xor edi, ecx
mov edx, esi
and edx, ecx
xor eax, edx
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x130], edx
mov edx, dword [esp + 0x10]
mov ecx, eax
xor ecx, edi
xor esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
mov dword [edx], esi
not eax
mov dword [ebx + 0x13c], eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x144]
mov edi, dword [esi + 0x14c]
lea eax, [esi + 0x144]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x140]
lea ecx, [esi + 0x148]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx]
not eax
lea ebp, [esi + 0x14c]
mov ebx, eax
and eax, edx
not ecx
xor ecx, eax
or eax, edi
xor edx, eax
xor edi, ecx
xor eax, ebx
or ebx, edx
or ecx, eax
and ecx, ebx
mov dword [esi + 0x140], ecx
xor edx, edi
xor eax, edx
mov esi, ecx
and esi, eax
xor esi, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx], esi
mov esi, dword [esp + 0x30]
and ecx, edx
mov dword [esi], edi
xor ecx, eax
mov dword [ebp], ecx
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0x150]
mov edi, dword [ebx + 0x154]
lea ecx, [ebx + 0x154]
lea eax, [ebx + 0x158]
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov esi, dword [eax]
mov eax, dword [ebx + 0x15c]
xor eax, edx
mov ecx, esi
xor ecx, edi
mov edx, eax
and edx, edi
xor edx, dword [esp + 0x34]
mov edi, eax
or edi, dword [esp + 0x34]
xor edi, ecx
xor ecx, eax
xor eax, esi
or esi, edx
xor esi, ecx
not ecx
or ecx, edx
mov dword [esp + 0x34], esi
mov esi, ecx
xor esi, eax
or eax, edi
xor ecx, eax
xor edx, esi
mov esi, eax
mov eax, dword [esp + 0x30]
xor esi, edx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x150], esi
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx], ecx
mov dword [ebx + 0x15c], edi
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0x160]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0x164]
lea eax, [ebx + 0x168]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov esi, eax
or esi, edx
xor edx, eax
lea ecx, [ebx + 0x164]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0x16c]
xor esi, ecx
xor eax, esi
mov edi, edx
xor edx, eax
or edi, ecx
and edi, dword [esp + 0x34]
mov ecx, edx
or ecx, esi
xor ecx, dword [esp + 0x34]
xor edi, esi
mov esi, edx
or esi, dword [esp + 0x34]
xor ecx, edx
xor esi, eax
xor eax, ecx
not eax
or eax, esi
xor eax, edx
mov dword [ebx + 0x160], eax
mov eax, dword [esp + 0x30]
mov dword [eax], edi
and ecx, esi
xor ecx, edx
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
mov dword [ebx + 0x16c], esi
mov ebp, dword [esp + 0x1c]
mov edx, dword [ebp + 0x170]
mov ebx, dword [ebp + 0x178]
lea eax, [ebp + 0x17c]
lea ecx, [ebp + 0x178]
lea esi, [ebp + 0x174]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], esi
mov edi, dword [esi]
mov ecx, eax
and eax, edx
xor edx, ecx
mov esi, ecx
not ebx
xor eax, ebx
xor edi, eax
or esi, ebx
xor esi, edx
or edx, edi
xor ecx, edx
xor ecx, eax
mov ebx, eax
xor esi, edi
or ebx, edx
mov edx, dword [esp + 0x34]
xor ebx, esi
mov dword [ebp + 0x170], ebx
mov dword [edx], edi
mov edx, dword [esp + 0x30]
xor ecx, ebx
mov dword [edx], ecx
and ecx, esi
not eax
xor ecx, eax
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x18c]
mov edx, dword [ebx + 0x180]
lea ecx, [ebx + 0x184]
mov dword [esp + 0x34], ecx
mov ecx, dword [ecx]
xor edx, ecx
xor ecx, esi
not esi
lea eax, [ebx + 0x188]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
xor eax, esi
mov edi, ecx
and ecx, edx
xor ecx, eax
or eax, edi
xor edi, esi
xor edi, eax
xor eax, edx
not eax
and esi, ecx
xor esi, edx
mov dword [esp + 0x14], eax
xor edi, ecx
mov eax, esi
and eax, edx
mov edx, dword [esp + 0x30]
xor eax, edi
mov dword [ebx + 0x180], ecx
mov ecx, dword [esp + 0x34]
mov dword [ecx], esi
mov dword [edx], eax
or edi, esi
xor edi, dword [esp + 0x14]
mov dword [ebx + 0x18c], edi
mov ebp, dword [esp + 0x1c]
mov edi, dword [ebp + 0x198]
mov ecx, dword [ebp + 0x190]
lea eax, [ebp + 0x19c]
lea edx, [ebp + 0x194]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov dword [esp + 0x30], edx
mov edx, dword [edx]
lea esi, [ebp + 0x198]
xor edx, eax
not eax
xor edi, eax
xor eax, ecx
mov dword [esp + 0x14], esi
mov esi, eax
and esi, edx
xor edx, eax
xor ecx, edx
mov ebx, edx
xor esi, edi
or edx, esi
and ebx, edi
xor ebx, ecx
and ecx, esi
xor edx, ecx
xor eax, ecx
mov dword [ebp + 0x190], esi
mov edi, eax
or edi, ecx
mov ecx, eax
and ecx, ebx
xor ecx, edx
mov edx, dword [esp + 0x30]
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor edi, ebx
not edi
mov dword [ecx], edi
mov dword [edx], eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [ebx + 0x1a8]
mov edi, dword [ebx + 0x1a4]
mov ecx, dword [ebx + 0x1a0]
lea edx, [ebx + 0x1a8]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x1ac]
lea eax, [ebx + 0x1ac]
mov dword [esp + 0x10], eax
mov eax, ecx
or ecx, edx
xor edx, edi
lea esi, [ebx + 0x1a4]
and edi, eax
xor eax, ebp
xor ebp, edx
and edx, ecx
mov dword [esp + 0x30], esi
or eax, edi
xor edx, eax
mov esi, edx
xor ecx, edi
xor esi, edi
or esi, ecx
mov dword [esp + 0x34], edx
xor esi, ebp
or edx, esi
xor edx, dword [esp + 0x34]
and eax, ecx
xor edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x1a0], edx
mov edx, dword [esp + 0x30]
mov dword [edx], esi
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov dword [esi], edx
xor eax, ebp
mov dword [ecx], eax
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebx + 0x1b4]
mov eax, dword [ebx + 0x1b0]
mov esi, dword [ebx + 0x1bc]
lea edx, [ebx + 0x1b4]
lea ecx, [ebx + 0x1b8]
mov dword [esp + 0x14], edx
mov edx, dword [ecx]
mov dword [esp + 0x10], ecx
mov ecx, edx
and ecx, eax
xor ecx, esi
xor edx, edi
mov dword [esp + 0x34], esi
xor edx, ecx
mov esi, eax
or esi, dword [esp + 0x34]
mov dword [esp + 0x30], edx
xor eax, edx
xor esi, edi
mov edi, eax
or edi, esi
xor edi, ecx
mov edx, esi
and edx, ecx
xor eax, edx
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x1b0], edx
mov edx, dword [esp + 0x10]
mov ecx, eax
xor ecx, edi
xor esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
mov dword [edx], esi
not eax
mov dword [ebx + 0x1bc], eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x1c4]
mov edi, dword [esi + 0x1cc]
lea eax, [esi + 0x1c4]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x1c0]
lea ecx, [esi + 0x1c8]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx]
not eax
lea ebp, [esi + 0x1cc]
not ecx
mov ebx, eax
and eax, edx
xor ecx, eax
or eax, edi
xor edi, ecx
xor edx, eax
xor eax, ebx
or ecx, eax
or ebx, edx
and ecx, ebx
mov dword [esi + 0x1c0], ecx
xor edx, edi
xor eax, edx
mov esi, ecx
and esi, eax
xor esi, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx], esi
mov esi, dword [esp + 0x30]
and ecx, edx
mov dword [esi], edi
xor ecx, eax
mov dword [ebp], ecx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x1d8]
mov edi, dword [ebx + 0x1d4]
mov edx, dword [ebx + 0x1d0]
lea eax, [ebx + 0x1d8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x1dc]
xor eax, edx
lea ecx, [ebx + 0x1d4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov ecx, esi
xor ecx, edi
mov edx, eax
and edx, edi
xor edx, dword [esp + 0x34]
mov edi, eax
or edi, dword [esp + 0x34]
xor edi, ecx
xor ecx, eax
xor eax, esi
or esi, edx
xor esi, ecx
not ecx
or ecx, edx
mov dword [esp + 0x34], esi
mov esi, ecx
xor esi, eax
xor edx, esi
or eax, edi
xor ecx, eax
mov esi, eax
mov eax, dword [esp + 0x30]
xor esi, edx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x1d0], esi
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx], ecx
mov dword [ebx + 0x1dc], edi
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0x1e0]
lea eax, [ebx + 0x1e8]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0x1e4]
mov esi, eax
or esi, edx
xor edx, eax
lea ecx, [ebx + 0x1e4]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0x1ec]
xor esi, ecx
xor eax, esi
mov edi, edx
xor edx, eax
or edi, ecx
and edi, dword [esp + 0x34]
mov ecx, edx
or ecx, esi
xor ecx, dword [esp + 0x34]
xor edi, esi
xor ecx, edx
mov esi, edx
or esi, dword [esp + 0x34]
xor esi, eax
xor eax, ecx
not eax
or eax, esi
xor eax, edx
mov dword [ebx + 0x1e0], eax
mov eax, dword [esp + 0x30]
and ecx, esi
mov dword [eax], edi
xor ecx, edx
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
mov dword [ebx + 0x1ec], esi
mov ebp, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x1f8]
mov edi, dword [ebp + 0x1f4]
mov edx, dword [ebp + 0x1f0]
lea eax, [ebp + 0x1fc]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
lea ecx, [ebp + 0x1f8]
mov dword [esp + 0x30], ecx
mov ecx, eax
lea esi, [ebp + 0x1f4]
not ebx
mov dword [esp + 0x34], esi
and eax, edx
xor eax, ebx
mov esi, ecx
or esi, ebx
xor edx, ecx
xor edi, eax
xor esi, edx
or edx, edi
mov ebx, eax
xor esi, edi
xor ecx, edx
or ebx, edx
xor ebx, esi
xor ecx, eax
xor ecx, ebx
mov dword [ebp + 0x1f0], ebx
mov edx, dword [esp + 0x34]
mov dword [edx], edi
mov edx, dword [esp + 0x30]
mov dword [edx], ecx
and ecx, esi
not eax
xor ecx, eax
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x20c]
mov edx, dword [ebx + 0x200]
lea ecx, [ebx + 0x204]
mov dword [esp + 0x34], ecx
mov ecx, dword [ecx]
xor edx, ecx
xor ecx, esi
mov edi, ecx
and ecx, edx
lea eax, [ebx + 0x208]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
not esi
xor eax, esi
xor ecx, eax
or eax, edi
xor edi, esi
xor edi, eax
xor eax, edx
and esi, ecx
xor esi, edx
mov dword [ebx + 0x200], ecx
xor edi, ecx
mov ecx, dword [esp + 0x34]
not eax
mov dword [esp + 0x14], eax
mov dword [ecx], esi
mov eax, esi
and eax, edx
mov edx, dword [esp + 0x30]
xor eax, edi
mov dword [edx], eax
or edi, esi
xor edi, dword [esp + 0x14]
mov dword [ebx + 0x20c], edi
mov ebp, dword [esp + 0x1c]
mov edi, dword [ebp + 0x218]
mov ecx, dword [ebp + 0x210]
lea eax, [ebp + 0x21c]
lea edx, [ebp + 0x214]
mov dword [esp + 0x30], edx
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
xor edx, eax
lea esi, [ebp + 0x218]
not eax
xor edi, eax
xor eax, ecx
mov dword [esp + 0x14], esi
mov esi, eax
and esi, edx
xor edx, eax
xor ecx, edx
xor esi, edi
mov ebx, edx
and ebx, edi
xor ebx, ecx
and ecx, esi
xor eax, ecx
or edx, esi
xor edx, ecx
mov edi, eax
or edi, ecx
mov ecx, eax
and ecx, ebx
xor edi, ebx
xor ecx, edx
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x210], esi
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
not edi
mov dword [ecx], edi
mov dword [edx], eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [ebx + 0x228]
mov edi, dword [ebx + 0x224]
mov ecx, dword [ebx + 0x220]
lea edx, [ebx + 0x228]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x22c]
lea eax, [ebx + 0x22c]
mov dword [esp + 0x10], eax
mov eax, ecx
or ecx, edx
xor edx, edi
lea esi, [ebx + 0x224]
and edi, eax
xor eax, ebp
xor ebp, edx
and edx, ecx
or eax, edi
xor edx, eax
mov dword [esp + 0x30], esi
mov esi, edx
xor ecx, edi
xor esi, edi
or esi, ecx
xor esi, ebp
mov dword [esp + 0x34], edx
or edx, esi
xor edx, dword [esp + 0x34]
and eax, ecx
xor edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x220], edx
mov edx, dword [esp + 0x30]
mov dword [edx], esi
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov dword [esi], edx
mov edx, dword [esp + 0x18]
xor eax, ebp
pop edi
mov dword [ecx], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 0x18]
pop esi
add ecx, 0x20
pop ebp
pop ebx
cmp eax, 0x84
jb 0x4a22d4
mov eax, 0x84
add eax, eax
add eax, eax
push eax
push ecx
mov ecx, dword [edx + 0x14]
push ecx
call fcn.0045e5f0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
add eax, eax
add esp, 0xc
add eax, eax
push eax
mov eax, dword [esp + 0x10]
push eax
call edx
add esp, 0x1c
ret 8