Function at 0x49c3d0
Capabilities:
Encrypt data using camellia

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x5b706c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
lea eax, [ebp - 0x44]
push 0x40
push 0
push eax
mov ebx, edx
lea esi, [edi + 4]
call fcn.00525340
push 0x110
push 0
push esi
call fcn.00525340
mov edx, dword [ebp + 8]
add esp, 0x18
mov eax, edx
sub eax, 0x80
je 0x49c514
sub eax, 0x40
je 0x49c43a
sub eax, 0x40
je 0x49c43a
pop edi
pop esi
mov eax, 0xffffffdc
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret
mov eax, 0x57b3dd
mov dword [ebp - 0x100], 0x57b0fd
mov dword [ebp - 0x10c], eax
mov ecx, 4
mov eax, 0x57b3c9
mov dword [ebp - 0xfc], 0x57b0fc
mov dword [ebp - 0xf8], eax
mov eax, 0x57b3b5
mov dword [ebp - 0x11c], eax
mov eax, 0x57b3a1
mov dword [ebp - 0x120], 0x57b0f9
mov dword [ebp - 0x118], 0x57b0f8
mov dword [ebp - 0xe4], 0x57b0f5
mov dword [ebp - 0xe0], 0x57b0f4
mov dword [ebp - 0xd0], 0x57b0f1
mov dword [ebp - 0xd4], 0x57b0f2
mov dword [ebp - 0xd8], 0x57b0f3
mov dword [ebp - 0xe8], 0x57b0f6
mov dword [ebp - 0xec], 0x57b0f7
mov dword [ebp - 0xf0], 0x57b0fa
mov dword [ebp - 0xf4], 0x57b0fb
mov dword [ebp - 0x104], 0x57b0fe
mov dword [ebp - 0x108], 0x57b0ff
mov dword [ebp - 0x110], 0x57b0ac
mov dword [ebp - 0x114], 0x2c
jmp 0x49c5e9
mov eax, 0x57b38d
mov dword [ebp - 0x100], 0x57b0ed
mov dword [ebp - 0x10c], eax
mov ecx, 3
mov eax, 0x57b379
mov dword [ebp - 0xfc], 0x57b0ec
mov dword [ebp - 0xf8], eax
mov eax, 0x57b365
mov dword [ebp - 0x11c], eax
mov eax, 0x57b351
mov dword [ebp - 0x120], 0x57b0e9
mov dword [ebp - 0x118], 0x57b0e8
mov dword [ebp - 0xe4], 0x57b0e5
mov dword [ebp - 0xe0], 0x57b0e4
mov dword [ebp - 0xd0], 0x57b0e1
mov dword [ebp - 0xd4], 0x57b0e2
mov dword [ebp - 0xd8], 0x57b0e3
mov dword [ebp - 0xe8], 0x57b0e6
mov dword [ebp - 0xec], 0x57b0e7
mov dword [ebp - 0xf0], 0x57b0ea
mov dword [ebp - 0xf4], 0x57b0eb
mov dword [ebp - 0x104], 0x57b0ee
mov dword [ebp - 0x108], 0x57b0ef
mov dword [ebp - 0x110], 0x57b098
mov dword [ebp - 0x114], 0x20
mov dword [ebp - 0xdc], eax
mov eax, edx
shr eax, 3
mov dword [edi], ecx
test eax, eax
je 0x49c60b
push eax
lea eax, [ebp - 0x44]
push ebx
push eax
call fcn.00524840
mov edx, dword [ebp + 8]
add esp, 0xc
mov bl, byte [ebp - 0x34]
cmp edx, 0xc0
mov dh, byte [ebp - 0x2d]
jne 0x49c66b
mov al, byte [ebp - 0x33]
mov dl, bl
not al
not dl
mov byte [ebp - 0xcb], al
mov al, byte [ebp - 0x32]
not al
mov byte [ebp - 0xc5], al
mov al, byte [ebp - 0x31]
not al
mov byte [ebp - 0xc6], al
mov al, byte [ebp - 0x30]
not al
mov byte [ebp - 0xc7], al
mov al, byte [ebp - 0x2f]
not al
mov byte [ebp - 0xc8], al
mov al, byte [ebp - 0x2e]
not al
mov byte [ebp - 0xc9], al
mov al, dh
not al
mov byte [ebp - 0xca], al
jmp 0x49c6ad
mov al, byte [ebp - 0x25]
mov dl, byte [ebp - 0x2c]
mov byte [ebp - 0xca], al
mov al, byte [ebp - 0x26]
mov byte [ebp - 0xc9], al
mov al, byte [ebp - 0x27]
mov byte [ebp - 0xc8], al
mov al, byte [ebp - 0x28]
mov byte [ebp - 0xc7], al
mov al, byte [ebp - 0x29]
mov byte [ebp - 0xc6], al
mov al, byte [ebp - 0x2a]
mov byte [ebp - 0xc5], al
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0xcb], al
movzx ecx, byte [ebp - 0x44]
xorps xmm0, xmm0
movzx eax, byte [ebp - 0x43]
shl ecx, 8
or ecx, eax
movlpd qword [ebp - 0x94], xmm0
movzx eax, byte [ebp - 0x42]
shl ecx, 8
or ecx, eax
movzx edi, byte [ebp - 0x30]
movzx eax, byte [ebp - 0x41]
shl ecx, 8
or ecx, eax
movlpd qword [ebp - 0x8c], xmm0
movzx eax, byte [ebp - 0x3f]
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x94], ecx
movzx ecx, byte [ebp - 0x40]
shl ecx, 8
or ecx, eax
movzx ebx, bl
movzx eax, byte [ebp - 0x3e]
shl ecx, 8
or ecx, eax
shl ebx, 8
movzx eax, byte [ebp - 0x3d]
shl ecx, 8
or ecx, eax
movlpd qword [ebp - 0x84], xmm0
movzx eax, byte [ebp - 0x3b]
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x90], ecx
movzx ecx, byte [ebp - 0x3c]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xc4], 0xa09e667f
movzx eax, byte [ebp - 0x3a]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xc0], 0x3bcc908b
movzx eax, byte [ebp - 0x39]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xbc], 0xb67ae858
movzx eax, byte [ebp - 0x37]
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x8c], ecx
movzx ecx, byte [ebp - 0x38]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb8], 0x4caa73b2
movzx eax, byte [ebp - 0x36]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb4], 0xc6ef372f
movzx eax, byte [ebp - 0x35]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb0], 0xe94f82be
movzx eax, byte [ebp - 0x33]
or ebx, eax
mov dword [ebp - 0xac], 0x54ff53a5
movzx eax, byte [ebp - 0x32]
shl ebx, 8
or ebx, eax
mov dword [ebp - 0xa8], 0xf1d36f1c
movzx eax, byte [ebp - 0x31]
shl ebx, 8
or ebx, eax
mov dword [ebp - 0xa4], 0x10e527fa
movzx eax, byte [ebp - 0x2f]
mov dword [ebp - 0xa0], 0xde682d1d
mov dword [ebp - 0x9c], 0xb05688c2
mov dword [ebp - 0x98], 0xb3e6c1fd
movlpd qword [ebp - 0x7c], xmm0
movlpd qword [ebp - 0x64], xmm0
movlpd qword [ebp - 0x5c], xmm0
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ebx
shl edi, 8
or edi, eax
movzx ecx, byte [ebp - 0xc7]
movzx eax, byte [ebp - 0x2e]
shl edi, 8
or edi, eax
xor ebx, dword [ebp - 0x124]
movzx eax, dh
movzx edx, dl
shl edx, 8
shl edi, 8
or edi, eax
shl ecx, 8
movzx eax, byte [ebp - 0xcb]
or edx, eax
mov dword [ebp - 0x80], edi
movzx eax, byte [ebp - 0xc5]
xor edi, dword [ebp - 0x128]
shl edx, 8
or edx, eax
mov dword [ebp - 0x74], ebx
movzx eax, byte [ebp - 0xc6]
shl edx, 8
or edx, eax
mov dword [ebp - 0x70], edi
movzx eax, byte [ebp - 0xc8]
or ecx, eax
mov dword [ebp - 0x7c], edx
movzx eax, byte [ebp - 0xc9]
xor edx, dword [ebp - 0x12c]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0x6c], edx
movzx eax, byte [ebp - 0xca]
lea edx, [ebp - 0xc4]
shl ecx, 8
or ecx, eax
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x78], ecx
xor ecx, dword [ebp - 0x130]
mov dword [ebp - 0x68], ecx
lea ecx, [ebp - 0x74]
push eax
call fcn.0049c310
lea eax, [ebp - 0x74]
push eax
lea edx, [ebp - 0xbc]
lea ecx, [ebp - 0x6c]
call fcn.0049c310
movups xmm0, xmmword [ebp - 0x74]
lea eax, [ebp - 0x6c]
movups xmm1, xmmword [ebp - 0x94]
push eax
lea edx, [ebp - 0xb4]
pxor xmm1, xmm0
lea ecx, [ebp - 0x74]
movups xmmword [ebp - 0x74], xmm1
call fcn.0049c310
lea eax, [ebp - 0x74]
push eax
lea edx, [ebp - 0xac]
lea ecx, [ebp - 0x6c]
call fcn.0049c310
add esp, 0x10
cmp dword [ebp + 8], 0x80
jbe 0x49c971
mov eax, dword [ebp - 0x74]
lea edx, [ebp - 0xa4]
xor eax, dword [ebp - 0x84]
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x70]
xor eax, dword [ebp - 0x80]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x6c]
xor eax, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x68]
xor eax, dword [ebp - 0x78]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0049c310
lea eax, [ebp - 0x64]
push eax
lea edx, [ebp - 0x9c]
lea ecx, [ebp - 0x5c]
call fcn.0049c310
add esp, 8
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x94]
mov edi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], ebx
cmp byte [eax - 1], 0
je 0x49c9eb
mov ecx, edi
mov eax, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x44], ecx
mov ecx, ebx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x88]
shl eax, 0xf
shr ecx, 0x11
xor ecx, eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shl eax, 0xf
shr ecx, 0x11
xor ecx, eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x38], ecx
cmp byte [eax], 0
je 0x49ca34
mov ecx, edi
mov eax, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x34], ecx
mov ecx, ebx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x88]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0xd4]
cmp byte [eax], 0
je 0x49ca83
mov ecx, edi
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x24], ecx
mov ecx, ebx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x88]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xd8]
cmp byte [eax], 0
je 0x49cac8
mov eax, edx
mov ecx, edi
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shl edi, 0x1c
mov eax, ebx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x88]
shr eax, 4
xor eax, edi
shl ebx, 0x1c
mov dword [ebp - 0x10], eax
mov eax, ecx
shr eax, 4
xor eax, ebx
shr edx, 4
shl ecx, 0x1c
xor edx, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov ebx, dword [ebp - 0xdc]
xor edx, edx
mov al, byte [ebx + edx - 1]
cmp al, 0xff
je 0x49cae2
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x49caf3
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x49cb05
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x4c]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 2]
cmp al, 0xff
je 0x49cb17
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x48]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 3]
cmp al, 0xff
je 0x49cb29
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x49cad0
cmp dword [ebp + 8], 0x80
jbe 0x49cce1
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], ebx
cmp byte [eax], 0
je 0x49cba2
mov ecx, edi
mov eax, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x44], ecx
mov ecx, ebx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x78]
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0xe4]
cmp byte [eax], 0
je 0x49cbeb
mov ecx, edi
mov eax, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x34], ecx
mov ecx, ebx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x78]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0xe8]
cmp byte [eax], 0
je 0x49cc34
mov ecx, edi
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x24], ecx
mov ecx, ebx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x78]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xec]
cmp byte [eax], 0
je 0x49cc76
mov eax, edx
mov ecx, edi
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shl edi, 0x1c
mov eax, ebx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x78]
shr eax, 4
xor eax, edi
shl ebx, 0x1c
mov dword [ebp - 0x10], eax
mov eax, ecx
shr eax, 4
xor eax, ebx
shr edx, 4
shl ecx, 0x1c
xor edx, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov ebx, dword [ebp - 0x11c]
xor edx, edx
nop
mov al, byte [ebx + edx - 1]
cmp al, 0xff
je 0x49cc92
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x49cca3
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x49ccb5
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x4c]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 2]
cmp al, 0xff
je 0x49ccc7
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x48]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 3]
cmp al, 0xff
je 0x49ccd9
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x49cc80
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x6c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], ebx
cmp byte [eax], 0
je 0x49cd42
mov ecx, edi
mov eax, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x44], ecx
mov ecx, ebx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x68]
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x120]
cmp byte [eax], 0
je 0x49cd8b
mov ecx, edi
mov eax, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x34], ecx
mov ecx, ebx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x68]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0xf0]
cmp byte [eax], 0
je 0x49cdd4
mov ecx, edi
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x24], ecx
mov ecx, ebx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x68]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xf4]
cmp byte [eax], 0
je 0x49ce16
mov eax, edx
mov ecx, edi
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shl edi, 0x1c
mov eax, ebx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x68]
shr eax, 4
xor eax, edi
shl ebx, 0x1c
mov dword [ebp - 0x10], eax
mov eax, ecx
shr eax, 4
xor eax, ebx
shr edx, 4
shl ecx, 0x1c
xor edx, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov ebx, dword [ebp - 0xf8]
xor edx, edx
nop
mov al, byte [ebx + edx - 1]
cmp al, 0xff
je 0x49ce32
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x49ce43
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x49ce55
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x4c]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 2]
cmp al, 0xff
je 0x49ce67
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x48]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 3]
cmp al, 0xff
je 0x49ce79
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x49ce20
cmp dword [ebp + 8], 0x80
jbe 0x49d031
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], ebx
cmp byte [eax], 0
je 0x49ceef
mov ecx, edi
mov eax, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x44], ecx
mov ecx, ebx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x58]
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x100]
cmp byte [eax], 0
je 0x49cf38
mov ecx, edi
mov eax, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x34], ecx
mov ecx, ebx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x58]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x104]
cmp byte [eax], 0
je 0x49cf81
mov ecx, edi
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x24], ecx
mov ecx, ebx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, ebx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x58]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x108]
cmp byte [eax], 0
je 0x49cfc3
mov eax, edx
mov ecx, edi
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shl edi, 0x1c
mov eax, ebx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x58]
shr eax, 4
xor eax, edi
shl ebx, 0x1c
mov dword [ebp - 0x10], eax
mov eax, ecx
shr eax, 4
xor eax, ebx
shr edx, 4
shl ecx, 0x1c
xor edx, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov ebx, dword [ebp - 0x10c]
xor edx, edx
nop dword [eax + eax]
mov al, byte [ebx + edx - 1]
cmp al, 0xff
je 0x49cfe2
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x49cff3
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x49d005
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x4c]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 2]
cmp al, 0xff
je 0x49d017
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x48]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 3]
cmp al, 0xff
je 0x49d029
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x49cfd0
mov edi, dword [ebp - 0x110]
xor edx, edx
mov ebx, dword [ebp - 0x114]
nop
mov al, byte [edi + edx]
cmp al, 0xff
je 0x49d053
movsx eax, al
lea ecx, [ebx + edx]
mov eax, dword [esi + eax*4]
mov dword [esi + ecx*4], eax
inc edx
cmp edx, 0x14
jb 0x49d040
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret