Function at 0x10041d20
Capabilities:
Encrypt data using camellia

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x44]
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xd4], edx
push 0x40
push 0
push eax
lea esi, [edi + 4]
call fcn.10046690
push 0x110
push 0
push esi
call fcn.10046690
mov eax, ebx
add esp, 0x18
sub eax, 0x80
je 0x10041da5
sub eax, 0x40
je 0x10041d8a
sub eax, 0x40
je 0x10041d8a
pop edi
pop esi
mov eax, 0xffffffdc
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10045387
mov esp, ebp
pop ebp
ret
mov ecx, ebx
mov dword [edi], 4
shr ecx, 3
mov dword [ebp - 0xdc], 1
test ecx, ecx
je 0x10041dcb
jmp 0x10041db8
xor eax, eax
mov dword [edi], 3
mov ecx, ebx
mov dword [ebp - 0xdc], eax
shr ecx, 3
push ecx
push dword [ebp - 0xd4]
lea eax, [ebp - 0x44]
push eax
call fcn.10047450
add esp, 0xc
mov dh, byte [ebp - 0x2d]
cmp ebx, 0xc0
mov bl, byte [ebp - 0x34]
jne 0x10041e2b
mov al, byte [ebp - 0x33]
mov dl, bl
not al
not dl
mov byte [ebp - 0xc9], al
mov al, byte [ebp - 0x32]
not al
mov byte [ebp - 0xca], al
mov al, byte [ebp - 0x31]
not al
mov byte [ebp - 0xcb], al
mov al, byte [ebp - 0x30]
not al
mov byte [ebp - 0xcc], al
mov al, byte [ebp - 0x2f]
not al
mov byte [ebp - 0xcd], al
mov al, byte [ebp - 0x2e]
not al
mov byte [ebp - 0xce], al
mov al, dh
not al
mov byte [ebp - 0xcf], al
jmp 0x10041e6d
mov al, byte [ebp - 0x25]
mov dl, byte [ebp - 0x2c]
mov byte [ebp - 0xcf], al
mov al, byte [ebp - 0x26]
mov byte [ebp - 0xce], al
mov al, byte [ebp - 0x27]
mov byte [ebp - 0xcd], al
mov al, byte [ebp - 0x28]
mov byte [ebp - 0xcc], al
mov al, byte [ebp - 0x29]
mov byte [ebp - 0xcb], al
mov al, byte [ebp - 0x2a]
mov byte [ebp - 0xca], al
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0xc9], al
movzx ecx, byte [ebp - 0x44]
xorps xmm0, xmm0
movzx eax, byte [ebp - 0x43]
shl ecx, 8
or ecx, eax
movzx edi, byte [ebp - 0x30]
movzx eax, byte [ebp - 0x42]
shl ecx, 8
or ecx, eax
movzx ebx, bl
movzx eax, byte [ebp - 0x41]
shl ecx, 8
or ecx, eax
shl ebx, 8
movzx eax, byte [ebp - 0x3f]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0x94], ecx
movzx ecx, byte [ebp - 0x40]
shl ecx, 8
or ecx, eax
shl edi, 8
movzx eax, byte [ebp - 0x3e]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xc4], 0xa09e667f
movzx eax, byte [ebp - 0x3d]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xc0], 0x3bcc908b
movzx eax, byte [ebp - 0x3b]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0x90], ecx
movzx ecx, byte [ebp - 0x3c]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xbc], 0xb67ae858
movzx eax, byte [ebp - 0x3a]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb8], 0x4caa73b2
movzx eax, byte [ebp - 0x39]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb4], 0xc6ef372f
movzx eax, byte [ebp - 0x37]
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x8c], ecx
movzx ecx, byte [ebp - 0x38]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb0], 0xe94f82be
movzx eax, byte [ebp - 0x36]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xac], 0x54ff53a5
movzx eax, byte [ebp - 0x35]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xa8], 0xf1d36f1c
movzx eax, byte [ebp - 0x33]
or ebx, eax
mov dword [ebp - 0xa4], 0x10e527fa
movzx eax, byte [ebp - 0x32]
shl ebx, 8
or ebx, eax
mov dword [ebp - 0xa0], 0xde682d1d
movzx eax, byte [ebp - 0x31]
shl ebx, 8
or ebx, eax
mov dword [ebp - 0x9c], 0xb05688c2
movzx eax, byte [ebp - 0x2f]
or edi, eax
mov dword [ebp - 0x98], 0xb3e6c1fd
movzx eax, byte [ebp - 0x2e]
shl edi, 8
movlpd qword [ebp - 0x64], xmm0
or edi, eax
movlpd qword [ebp - 0x5c], xmm0
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ebx
movzx ecx, byte [ebp - 0xcc]
movzx eax, dh
movzx edx, dl
shl edx, 8
xor ebx, dword [ebp - 0xd4]
shl edi, 8
or edi, eax
shl ecx, 8
movzx eax, byte [ebp - 0xc9]
or edx, eax
mov dword [ebp - 0x80], edi
movzx eax, byte [ebp - 0xca]
xor edi, dword [ebp - 0xc8]
shl edx, 8
or edx, eax
mov dword [ebp - 0x74], ebx
movzx eax, byte [ebp - 0xcb]
shl edx, 8
or edx, eax
mov dword [ebp - 0x70], edi
movzx eax, byte [ebp - 0xcd]
or ecx, eax
mov dword [ebp - 0x7c], edx
movzx eax, byte [ebp - 0xce]
xor edx, dword [ebp - 0xe0]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0x6c], edx
movzx eax, byte [ebp - 0xcf]
lea edx, [ebp - 0xc4]
shl ecx, 8
or ecx, eax
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x78], ecx
xor ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x68], ecx
lea ecx, [ebp - 0x74]
push eax
call fcn.10041c50
lea eax, [ebp - 0x74]
push eax
lea edx, [ebp - 0xbc]
lea ecx, [ebp - 0x6c]
call fcn.10041c50
movups xmm0, xmmword [ebp - 0x74]
lea eax, [ebp - 0x6c]
movups xmm1, xmmword [ebp - 0x94]
push eax
lea edx, [ebp - 0xb4]
xorps xmm1, xmm0
lea ecx, [ebp - 0x74]
movups xmmword [ebp - 0x74], xmm1
call fcn.10041c50
lea eax, [ebp - 0x74]
push eax
lea edx, [ebp - 0xac]
lea ecx, [ebp - 0x6c]
call fcn.10041c50
add esp, 0x10
cmp dword [ebp + 8], 0x80
jbe 0x10042113
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.10041c50
lea eax, [ebp - 0x64]
push eax
lea edx, [ebp - 0x9c]
lea ecx, [ebp - 0x5c]
call fcn.10041c50
add esp, 8
mov ebx, dword [ebp - 0xdc]
mov eax, ebx
movups xmm0, xmmword [ebp - 0x94]
mov edi, dword [ebp - 0x88]
mov edx, dword [ebp - 0x94]
shl eax, 4
mov dword [ebp - 0xd4], eax
movups xmmword [ebp - 0x54], xmm0
cmp byte [eax + 0x10069388], 0
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xc8], eax
je 0x1004219e
mov ecx, eax
mov eax, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x8c]
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x40], ecx
mov ecx, edi
shl eax, 0xf
shr ecx, 0x11
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shl eax, 0xf
shr ecx, 0x11
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0xd4]
cmp byte [ecx + 0x10069389], 0
je 0x100421f5
mov ecx, eax
mov eax, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x8c]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x30], ecx
mov ecx, edi
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
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 + 0x1006938a], 0
je 0x10042256
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x8c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x20], ecx
mov ecx, edi
shl eax, 0xd
shr ecx, 0x13
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shl eax, 0xd
shr ecx, 0x13
xor ecx, eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x18], ecx
cmp byte [eax + 0x1006938b], 0
je 0x100422a5
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shl dword [ebp - 0xc8], 0x1c
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shr edx, 4
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x8c]
mov eax, ecx
shr eax, 4
xor eax, dword [ebp - 0xc8]
mov dword [ebp - 0x10], eax
mov eax, edi
shr eax, 4
shl ecx, 0x1c
xor eax, ecx
shl edi, 0x1c
xor edx, edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
lea eax, [ebx + ebx*4]
xor edx, edx
mov ebx, eax
mov dword [ebp - 0xd8], eax
shl ebx, 4
add ebx, 0x100694c9
nop dword [eax + eax]
mov al, byte [ebx + edx - 1]
lea edi, [edx*4]
cmp al, 0xff
je 0x100422d9
movsx ecx, al
mov eax, dword [ebp + edi - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x100422ea
movsx ecx, al
mov eax, dword [ebp + edi - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x100422ff
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 8]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 2]
cmp al, 0xff
je 0x10042314
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 0xc]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 3]
cmp al, 0xff
je 0x10042326
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x100422c0
cmp dword [ebp + 8], 0x80
mov ebx, dword [ebp - 0xdc]
jbe 0x10042534
movups xmm0, xmmword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
mov eax, ebx
mov edi, dword [ebp - 0x78]
mov edx, dword [ebp - 0x84]
shl eax, 4
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0xc8], ecx
cmp byte [eax + 0x1006938c], 0
je 0x100423b2
shr ecx, 0x11
mov eax, edx
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x7c]
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x40], ecx
mov ecx, edi
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0xc8]
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x1006938d], 0
je 0x10042400
shr ecx, 2
mov eax, edx
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x7c]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x30], ecx
mov ecx, edi
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x1006938e], 0
je 0x10042454
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x7c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x20], ecx
mov ecx, edi
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x1006938f], 0
je 0x100424a5
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shl dword [ebp - 0xc8], 0x1c
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shr edx, 4
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x7c]
mov eax, ecx
shr eax, 4
xor eax, dword [ebp - 0xc8]
mov dword [ebp - 0x10], eax
mov eax, edi
shr eax, 4
shl ecx, 0x1c
xor eax, ecx
shl edi, 0x1c
xor edx, edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
lea eax, [ebx + ebx*4]
xor edx, edx
mov ebx, eax
mov dword [ebp - 0xd8], eax
shl ebx, 4
add ebx, 0x100694dd
nop dword [eax + eax]
mov al, byte [ebx + edx - 1]
lea edi, [edx*4]
cmp al, 0xff
je 0x100424d9
movsx ecx, al
mov eax, dword [ebp + edi - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x100424ea
movsx ecx, al
mov eax, dword [ebp + edi - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x100424ff
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 8]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 2]
cmp al, 0xff
je 0x10042514
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 0xc]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 3]
cmp al, 0xff
je 0x10042526
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x100424c0
mov ebx, dword [ebp - 0xdc]
movups xmm0, xmmword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov eax, ebx
mov edi, dword [ebp - 0x68]
mov edx, dword [ebp - 0x74]
shl eax, 4
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0xc8], ecx
cmp byte [eax + 0x10069390], 0
je 0x1004259f
shr ecx, 0x11
mov eax, edx
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x6c]
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x40], ecx
mov ecx, edi
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0xc8]
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x10069391], 0
je 0x100425ed
shr ecx, 2
mov eax, edx
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x6c]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
mov ecx, edi
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x10069392], 0
je 0x10042641
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x6c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x20], ecx
mov ecx, edi
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x10069393], 0
je 0x10042692
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shl dword [ebp - 0xc8], 0x1c
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shr edx, 4
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x6c]
mov eax, ecx
shr eax, 4
xor eax, dword [ebp - 0xc8]
mov dword [ebp - 0x10], eax
mov eax, edi
shr eax, 4
shl ecx, 0x1c
xor eax, ecx
shl edi, 0x1c
xor edx, edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
lea eax, [ebx + ebx*4]
xor edx, edx
mov ebx, eax
mov dword [ebp - 0xd8], eax
shl ebx, 4
add ebx, 0x100694f1
nop dword [eax + eax]
mov al, byte [ebx + edx - 1]
lea edi, [edx*4]
cmp al, 0xff
je 0x100426c9
movsx ecx, al
mov eax, dword [ebp + edi - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x100426da
movsx ecx, al
mov eax, dword [ebp + edi - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x100426ef
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 8]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 2]
cmp al, 0xff
je 0x10042704
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 0xc]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 3]
cmp al, 0xff
je 0x10042716
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x100426b0
cmp dword [ebp + 8], 0x80
mov ebx, dword [ebp - 0xdc]
jbe 0x10042924
movups xmm0, xmmword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov eax, ebx
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x64]
shl eax, 4
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0xc8], ecx
cmp byte [eax + 0x10069394], 0
je 0x1004279c
shr ecx, 0x11
mov eax, edx
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x5c]
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x40], ecx
mov ecx, edi
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x3c], ecx
mov ecx, edx
shr ecx, 0x11
shl eax, 0xf
xor ecx, eax
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0xc8]
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x10069395], 0
je 0x100427ea
shr ecx, 2
mov eax, edx
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x5c]
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x30], ecx
mov ecx, edi
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 2
shl eax, 0x1e
xor ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x10069396], 0
je 0x1004283e
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x5c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x20], ecx
mov ecx, edi
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
mov dword [ebp - 0x1c], ecx
mov ecx, edx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, ebx
shl eax, 4
cmp byte [eax + 0x10069397], 0
je 0x1004288f
mov ecx, dword [ebp - 0xc8]
mov eax, edx
shl dword [ebp - 0xc8], 0x1c
shl eax, 0x1c
shr ecx, 4
xor ecx, eax
shr edx, 4
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x5c]
mov eax, ecx
shr eax, 4
xor eax, dword [ebp - 0xc8]
mov dword [ebp - 0x10], eax
mov eax, edi
shr eax, 4
shl ecx, 0x1c
xor eax, ecx
shl edi, 0x1c
xor edx, edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
lea eax, [ebx + ebx*4]
xor edx, edx
mov ebx, eax
mov dword [ebp - 0xd8], eax
shl ebx, 4
add ebx, 0x10069505
nop word [eax + eax]
mov al, byte [ebx + edx - 1]
lea edi, [edx*4]
cmp al, 0xff
je 0x100428c9
movsx ecx, al
mov eax, dword [ebp + edi - 0x54]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx]
cmp al, 0xff
je 0x100428da
movsx ecx, al
mov eax, dword [ebp + edi - 0x50]
mov dword [esi + ecx*4], eax
mov al, byte [ebx + edx + 1]
cmp al, 0xff
je 0x100428ef
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 8]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 2]
cmp al, 0xff
je 0x10042904
movsx ecx, al
lea eax, [ebp - 0x54]
mov eax, dword [edi + eax + 0xc]
mov dword [esi + ecx*4], eax
mov al, byte [edx + ebx + 3]
cmp al, 0xff
je 0x10042916
movsx ecx, al
mov eax, dword [ebp + edx*4 - 0x44]
mov dword [esi + ecx*4], eax
add edx, 5
cmp edx, 0x14
jb 0x100428b0
mov ebx, dword [ebp - 0xdc]
lea eax, [ebx + ebx*4]
xor edi, edi
lea eax, [eax*4 + 0x10069340]
mov dword [ebp - 0xd4], eax
mov cl, byte [eax]
cmp cl, 0xff
je 0x10042956
movsx edx, cl
lea eax, [ebx + ebx*2]
lea ecx, [edi + eax*4]
mov eax, dword [esi + edx*4]
mov dword [esi + ecx*4 + 0x80], eax
mov eax, dword [ebp - 0xd4]
inc edi
inc eax
mov dword [ebp - 0xd4], eax
cmp edi, 0x14
jb 0x10042936
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10045387
mov esp, ebp
pop ebp
ret