Function at 0x103c1e70
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov ebx, ecx
push 0x400
push 0
lea esi, [ebx + 0x246c]
push esi
call fcn.10425c00
add esp, 0xc
mov ecx, ebx
call fcn.103e5970
mov di, word [ebx + 0xf38]
mov dword [esi], eax
dec di
mov eax, dword [ebx + 0x248]
mov si, word [ebx + 0xf30]
add eax, 0x17
add di, word [ebx + 0xe30]
dec si
add si, word [ebx + 0xe2c]
mov word [ebx + 0x2470], si
lea eax, [ebx + eax*4]
mov word [ebx + 0x2472], di
mov dword [ebp - 8], eax
mov eax, dword [eax]
mov eax, dword [eax]
cmp byte [eax + 0x1b4], 0
je 0x103c1eec
mov eax, dword [eax + 0x1b0]
jmp 0x103c1ef2
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x28]
movzx eax, ax
xor ecx, ecx
cmp dword [ebx + 0xe58], 8
setne cl
xor edx, edx
inc ecx
div ecx
xor edx, edx
mov word [ebx + 0x2474], ax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
movzx eax, word [eax + 0x2c]
div ecx
mov ecx, dword [ebp - 8]
mov word [ebx + 0x2476], ax
mov dword [ebx + 0x247c], 0
mov eax, dword [ecx]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf0]
shr eax, 8
mov dword [ebx + 0x2480], eax
mov eax, dword [ecx]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf8]
shr eax, 8
mov dword [ebx + 0x2484], eax
mov eax, dword [ecx]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xfc]
shr eax, 8
mov dword [ebx + 0x2488], eax
mov eax, dword [ebx + 0x248c]
and eax, 0xffffff82
or eax, 2
and eax, 0xffffff7f
cmp dword [ebx + 0xe40], 3
mov dword [ebx + 0x248c], eax
jne 0x103c1faa
or eax, 0x300
mov dword [ebx + 0x2480], 0
mov dword [ebx + 0x248c], eax
cmp byte [ebx + 0x6829], 0
movups xmm0, xmmword [ebx + 0x2470]
movups xmmword [ebx + 0x24b0], xmm0
movups xmm0, xmmword [ebx + 0x2480]
movups xmmword [ebx + 0x24c0], xmm0
movups xmm0, xmmword [ebx + 0x2470]
movups xmmword [ebx + 0x24d0], xmm0
movups xmm0, xmmword [ebx + 0x2480]
movups xmmword [ebx + 0x24e0], xmm0
je 0x103c2023
mov eax, dword [ebx + 0x481c]
cmp eax, 0xffffffff
je 0x103c2023
imul ecx, dword [ebx + eax*4 + 0x4854], 0xe0
movzx eax, word [ecx + ebx + 0x3f98]
dec ax
mov word [ebx + 0x24d0], ax
movzx eax, word [ecx + ebx + 0x3f9c]
dec ax
mov word [ebx + 0x24d2], ax
mov word [ebx + 0x2490], si
mov esi, dword [ebx + 0x30]
mov word [ebx + 0x2492], di
mov eax, dword [esi]
cmp byte [eax + 0x1b4], 0
je 0x103c2047
mov eax, dword [eax + 0x1b0]
jmp 0x103c204d
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x28]
xor ecx, ecx
movzx eax, ax
cmp dword [ebx + 0xe50], 8
setne cl
xor edx, edx
inc ecx
div ecx
movzx edi, ax
mov word [ebx + 0x2494], di
mov eax, dword [esi]
cmp byte [eax + 0x1b4], 0
je 0x103c207e
mov eax, dword [eax + 0x1b0]
jmp 0x103c2084
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x28]
movzx eax, ax
xor edx, edx
div ecx
mov ecx, dword [ebx + 0x24ac]
mov word [ebx + 0x2496], ax
and ecx, 0xfffffcff
mov dword [ebx + 0x249c], 0
mov dword [ebx + 0x24a0], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf8]
shr eax, 8
mov dword [ebx + 0x24a4], eax
mov dword [ebx + 0x24a8], 0
mov dword [ebx + 0x24ac], ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
cmp byte [eax + 0xbd], 0
je 0x103c20f2
and ecx, 0xffffff82
or ecx, 2
and ecx, 0xffffff7f
jmp 0x103c210f
and ecx, 0xffffff80
mov dword [ebx + 0x24ac], ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
cmp byte [eax + 0xbc], 0
je 0x103c2115
or ecx, 0x80
mov dword [ebx + 0x24ac], ecx
cmp dword [ebx + 0xe40], 3
jne 0x103c215c
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf8]
shr eax, 8
mov dword [ebx + 0x24a4], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xfc]
shr eax, 8
or ecx, 0x300
mov dword [ebx + 0x24a8], eax
lea eax, [edi + edi]
mov dword [ebx + 0x24ac], ecx
mov word [ebx + 0x2496], ax
movzx edx, byte [ebx + 0x92c]
and edx, 1
movzx eax, byte [ebx + 0x92b]
and eax, 1
mov ecx, dword [ebx + 0xef8]
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x92a]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x929]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0x468]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0x464]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x923]
and eax, 3
shl edx, 2
or edx, eax
movzx eax, byte [ebx + 0x920]
and eax, 3
shl edx, 2
or edx, eax
movzx eax, byte [ebx + 0x928]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x927]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x926]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x925]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x924]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0x930]
and eax, 0xf
shl edx, 4
or edx, eax
mov eax, dword [ebx + 0x934]
and eax, 0xf
shl edx, 4
or edx, eax
movzx eax, byte [ebx + 0x938]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0xe40]
and eax, 3
shl edx, 2
or edx, eax
mov eax, dword [ebx + 0xf08]
shl edx, 4
lea eax, [eax*4 + 4]
and eax, 0xc
or edx, eax
xor eax, eax
add ecx, 0xfffffffd
cmovns eax, ecx
and eax, 3
or edx, eax
mov eax, dword [ebx + 0x24f0]
and eax, 0xc0000000
or edx, eax
mov dword [ebx + 0x24f0], edx
mov al, byte [ebx + 0x9fd]
mov byte [ebp - 1], al
movzx edi, al
movzx edx, byte [ebx + 0x9fe]
and edx, 1
movzx eax, byte [ebx + 0x9ff]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x9fc]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0x9e0]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0x968]
and eax, 3
shl edx, 2
or edx, eax
mov eax, dword [ebx + 0xcb0]
and eax, 3
shl edx, 2
or edx, eax
mov eax, dword [ebx + 0xd74]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0xc24]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0xc20]
and eax, 3
shl edx, 2
or edx, eax
mov eax, dword [ebx + 0xc1c]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x9f9]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebx + 0xc18]
and eax, 3
shl edx, 2
or edx, eax
mov eax, dword [ebx + 0xc14]
and eax, 1
add edx, edx
or edx, eax
mov eax, edi
and eax, 7
shl edx, 3
or edx, eax
movzx eax, byte [ebx + 0x9fa]
and eax, 1
shl edx, 2
or edx, eax
movzx eax, byte [ebx + 0x9fb]
and eax, 1
shl edx, 2
or edx, eax
movzx eax, byte [ebx + 0x9f6]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x9f7]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x9f8]
and eax, 1
add edx, edx
or edx, eax
movzx eax, byte [ebx + 0x9f4]
add edx, edx
and eax, 1
or edx, eax
xor ecx, ecx
shl edx, 2
cmp byte [ebp - 1], 4
mov eax, 0x80
mov esi, 0x200
cmove ecx, eax
mov eax, dword [ebx + 0x964]
and eax, 3
or ecx, eax
mov eax, dword [ebx + 0x24f4]
and eax, 0xffffff00
or ecx, eax
xor eax, eax
and ecx, 0xfffffcff
cmp byte [ebx + 0x9f5], al
cmove eax, esi
mov esi, dword [ebx + 0xe8c]
or ecx, eax
mov eax, dword [ebx + 0x24f8]
and ecx, 0xc00003ff
or edx, ecx
xor ecx, ecx
cmp byte [ebx + 0xe89], cl
mov dword [ebx + 0x24f4], edx
setne cl
and eax, 0xfffffffe
add esi, esi
or ecx, eax
xor esi, ecx
and esi, 0x1fe
xor esi, ecx
cmp byte [ebx + 0xe73], 0
je 0x103c2436
cmp dword [ebx + 0x4814], 1
jle 0x103c2436
mov eax, dword [ebx + 0x481c]
inc eax
cmp eax, 5
jge 0x103c2436
mov eax, 0x400
jmp 0x103c2438
xor eax, eax
and esi, 0xfffffbff
or esi, eax
xor eax, eax
cmp dword [ebp + 8], 1
jne 0x103c2451
cmp byte [ebx + 0xe74], al
setne al
and esi, 0xfffffdff
shl eax, 9
or esi, eax
and esi, 0xffff87ff
cmp byte [ebp - 1], 4
jne 0x103c2475
mov edx, 3
or esi, 0x1800
jmp 0x103c2488
mov edx, 1
mov ecx, edi
shl edx, cl
mov eax, edx
and eax, 0xf
shl eax, 0xb
or esi, eax
movzx eax, byte [ebx + 0xd84]
shl eax, 0x13
shl edx, 0xf
xor edx, esi
and edx, 0x78000
xor edx, esi
xor eax, edx
and eax, 0x80000
xor edx, eax
movzx eax, byte [ebx + 0xd85]
shl eax, 0x14
xor eax, edx
and eax, 0x100000
xor edx, eax
movzx eax, byte [ebx + 0xd87]
shl eax, 0x15
xor eax, edx
and eax, 0x200000
xor edx, eax
movzx eax, word [ebx + 0xe2a]
shl eax, 0x16
xor eax, edx
and eax, 0x400000
xor edx, eax
movsx eax, word [ebx + 0xe28]
shl eax, 0x17
xor eax, edx
and eax, 0x3800000
xor eax, edx
cmp dword [ebx + 0x45c], 0
mov dword [ebx + 0x24f8], eax
je 0x103c257a
mov ecx, dword [ebx + 0x97c]
lea edi, [ebx + 0x476c]
mov esi, 1
mov dword [ebp - 8], ecx
cmp esi, 7
ja 0x103c2571
mov eax, dword [edi]
cmp eax, 7
ja 0x103c2571
mov eax, dword [ebx + eax*4 + 0x4788]
cmp eax, 0xffffffff
je 0x103c2571
cmp dword [ebx + 0x45c], 0
jne 0x103c253c
xor ecx, ecx
jmp 0x103c2561
imul eax, eax, 0xe0
mov edx, dword [eax + ebx + 0x3f84]
mov eax, 1
sub edx, ecx
mov ecx, dword [ebx + 0x460]
shl eax, cl
lea ecx, [eax - 1]
and eax, edx
and ecx, edx
sub ecx, eax
shr ecx, 0x1f
xor cl, 1
mov byte [ebx + esi + 0x24fc], cl
mov ecx, dword [ebp - 8]
inc esi
add edi, 4
cmp esi, 7
jle 0x103c251a
movzx ecx, byte [ebx + 0xb88]
movzx eax, byte [ebx + 0xb8a]
and ecx, 7
and eax, 1
add ecx, ecx
or ecx, eax
movzx eax, byte [ebx + 0xb9c]
and eax, 1
add ecx, ecx
or ecx, eax
movzx eax, byte [ebx + 0xb9b]
and eax, 1
add ecx, ecx
or ecx, eax
mov eax, dword [ebx + 0x2510]
and eax, 0xc0ffffff
shl ecx, 0x18
or ecx, eax
xor ah, ah
mov dword [ebx + 0x2510], ecx
xor ecx, ecx
mov byte [ebx + 0x2512], 0
lea edx, [ecx + 8]
mov al, byte [ebx + ecx + 0xb8b]
and al, 1
shl al, cl
inc ecx
or al, ah
mov byte [ebx + 0x2512], al
mov ah, al
sub edx, 1
jne 0x103c25d2
lea ecx, [ebx + 0x2504]
lea eax, [ebx + 0xb84]
test ecx, ecx
je 0x103c260d
test eax, eax
je 0x103c2607
mov eax, dword [eax]
mov dword [ecx], eax
jmp 0x103c261d
mov dword [ecx], 0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea edx, [ebx + 0x2508]
lea ecx, [ebx + 0xb93]
test edx, edx
je 0x103c2644
test ecx, ecx
je 0x103c263d
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x103c2654
xorps xmm0, xmm0
movq qword [edx], xmm0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov ecx, dword [ebx + 0xbb4]
and ecx, 0x3f
mov eax, dword [ebx + 0xbb8]
shl eax, 6
or ecx, eax
mov edx, dword [ebx + 0xbe8]
mov eax, dword [ebx + 0xbb0]
and edx, 3
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0xbac]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0xba8]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0xba0]
shl ecx, 2
inc eax
and eax, 3
or ecx, eax
mov dword [ebx + 0x2514], ecx
mov ecx, dword [ebx + 0xbc8]
mov eax, dword [ebx + 0xbcc]
and ecx, 0x3f
shl eax, 6
or ecx, eax
mov eax, dword [ebx + 0xbc4]
shl ecx, 2
and eax, 0x3f
or ecx, edx
shl ecx, 6
or ecx, eax
mov eax, dword [ebx + 0xbc0]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0xbbc]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [ebx + 0x2518], ecx
mov ecx, dword [ebx + 0xbe0]
mov eax, dword [ebx + 0xbdc]
and ecx, 0x3f
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0xbd8]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0xbd4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0xbd0]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0x251c]
and eax, 0xc0000000
or ecx, eax
mov dword [ebx + 0x251c], ecx
mov ecx, dword [ebx + 0xbf4]
mov eax, dword [ebx + 0xbf0]
and ecx, 3
and eax, 3
shl ecx, 3
or ecx, eax
mov eax, dword [ebx + 0xbec]
and eax, 3
shl ecx, 3
or ecx, eax
mov eax, dword [ebx + 0xbe4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, dword [ebx + 0x2520]
xor edx, edx
and eax, 0xffff8000
or ecx, eax
mov dword [ebx + 0x2520], ecx
mov eax, dword [ebx + 0xbf8]
xor eax, dword [ebx + 0x2524]
and eax, 0xffffff
xor dword [ebx + 0x2524], eax
mov eax, dword [ebx + 0xbfc]
xor eax, dword [ebx + 0x2528]
and eax, 0xffffff
xor dword [ebx + 0x2528], eax
mov al, byte [ebx + 0xd5c]
mov byte [ebx + 0x252c], al
mov al, byte [ebx + 0xd60]
mov byte [ebx + 0x252d], al
mov al, byte [ebx + 0xd64]
mov byte [ebx + 0x252e], al
mov al, byte [ebx + 0xd6c]
mov byte [ebx + 0x252f], al
mov esi, dword [ebx + 0xc04]
mov eax, dword [ebx + 0xc00]
and esi, 3
mov edi, dword [ebx + 0xc08]
and eax, 3
shl esi, 2
or esi, eax
mov eax, dword [ebx + 0x2530]
and eax, 0xfffffff0
or esi, eax
cmp edi, 0x20
jle 0x103c282e
inc edx
mov eax, 0x20
mov ecx, edx
shl eax, cl
cmp eax, edi
jl 0x103c2820
mov edi, dword [ebx + 0xc0c]
shl edx, 4
xor edx, esi
and edx, 0x30
xor edx, esi
xor esi, esi
cmp edi, 0x20
jle 0x103c2853
inc esi
mov eax, 0x20
mov ecx, esi
shl eax, cl
cmp eax, edi
jl 0x103c2845
movzx ecx, word [ebx + 0xc10]
and edx, 0xff00003f
shl ecx, 8
xor eax, eax
or ecx, edx
mov edx, 0x1000000
and ecx, 0xfeffffff
cmp word [ebx + 0xc12], ax
cmovne eax, edx
and esi, 3
or ecx, eax
shl esi, 6
or ecx, esi
lea eax, [ebx + 0x2534]
mov dword [ebx + 0x2530], ecx
lea ecx, [ebx + 0x240c]
test eax, eax
je 0x103c28dd
test ecx, ecx
je 0x103c28d0
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [ecx + 0x50]
movups xmmword [eax + 0x50], xmm0
jmp 0x103c28ed
push 0x60
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
push dword [ebp + 8]
mov ecx, ebx
call fcn.103c3a30
mov edx, dword [ebx + 0xa04]
mov edi, edx
mov eax, dword [ebx + 0xa08]
imul edi, eax
movzx eax, al
dec edi
shl edi, 4
xor edi, dword [ebx + 0x25b4]
and edi, 0xff0
xor edi, dword [ebx + 0x25b4]
mov dword [ebx + 0x25b4], edi
movzx esi, byte [ebx + 0x6934]
mov ecx, dword [ebx + 0x25b0]
shl esi, 8
and ecx, 0xf80007ff
or esi, eax
mov dword [ebp - 8], edi
shl esi, 8
and edi, 0xff0
movzx eax, dl
or esi, eax
shl edi, 0xf
mov eax, dword [ebx + 0x25cc]
or edi, ecx
and eax, 0x8000007f
shl esi, 7
or esi, eax
mov ecx, 0x3000
mov dword [ebx + 0x25cc], esi
xor eax, eax
mov dword [ebx + 0x25b0], edi
cmp dword [ebx + 0x47c0], 0xffffffff
cmove eax, ecx
mov ecx, dword [ebp + 8]
mov dword [ebx + 0x25b8], eax
and esi, 0xfffffff8
mov eax, dword [ebx + 0x208]
and ecx, 3
mov dword [ebx + 0x25bc], eax
mov eax, dword [ebx + 0x3c]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x24]
mov dword [ebx + 0x25c0], eax
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x24]
mov dword [ebx + 0x25c4], eax
mov eax, dword [ebp + 0xc]
and eax, 1
mov dword [ebx + 0x25c8], 0
shl eax, 2
or eax, esi
or eax, ecx
mov dword [ebx + 0x25cc], eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x67f8]
mov dword [ebx + 0x25d0], eax
mov edx, dword [ebx + 0x6830]
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 0x84]
mov dword [ebx + 0x25d4], eax
mov eax, dword [edx]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx + 0x84]
add eax, dword [ecx + edx + 0x74]
mov dword [ebx + 0x25d8], eax
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 0x40]
mov dword [ebx + 0x25dc], eax
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 0x3c]
mov dword [ebx + 0x25f8], eax
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 0x4c]
mov dword [ebx + 0x25e4], eax
mov esi, 0x40000000
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 0x48]
mov dword [ebx + 0x25e0], eax
mov eax, dword [ebx + 0x158c]
mov dword [ebx + 0x25ac], eax
mov ecx, dword [ebx + 0xf58]
mov eax, dword [ebx + 0xf54]
and ecx, 3
mov edx, dword [ebx + 0x4818]
and eax, 3
shl ecx, 2
and edx, 7
or ecx, eax
shl edx, 3
mov eax, dword [ebp - 8]
and eax, 0xfffffff0
or ecx, eax
mov eax, dword [ebx + 0x4814]
and eax, 7
mov dword [ebp - 8], ecx
mov cl, byte [ebx + 0xe88]
or edx, eax
shl edx, 5
xor eax, eax
test cl, cl
cmovne eax, esi
and edi, 0xbffff81e
or edx, eax
or edx, edi
or edx, 4
test cl, cl
je 0x103c2acc
cmp dword [ebx + 0x1530], 0
jle 0x103c2acc
mov eax, 0x80000000
jmp 0x103c2ace
xor eax, eax
mov cl, byte [ebx + 0x34e]
and edx, 0x77ffffff
or edx, eax
mov esi, 0x8000000
and edx, 0xf7ffffff
xor eax, eax
test cl, cl
cmovne eax, esi
or edx, eax
test cl, cl
jne 0x103c2b03
cmp byte [ebx + 0xe79], cl
jne 0x103c2b03
mov eax, 0x10000000
jmp 0x103c2b05
xor eax, eax
xor ecx, ecx
mov dword [ebp + 8], 0x80000000
and edx, 0xefffffff
or edx, eax
mov eax, 0x40
mov dword [ebx + 0x25b0], edx
mov edx, 0x20000
cmp byte [ebx + 0x67fc], cl
mov edi, dword [ebx + 0xf40]
cmovne ecx, eax
mov esi, dword [ebx + 0xf44]
mov eax, dword [ebp + 0xc]
and eax, 0xffffffbf
or ecx, eax
xor eax, eax
and ecx, 0x7fffffc7
cmp byte [ebx + 0x1630], al
cmovne eax, dword [ebp + 8]
or ecx, eax
mov eax, 0x1000
or ecx, 0x38
mov dword [ebx + 0x25cc], ecx
xor ecx, ecx
cmp byte [ebx + 0xf3d], cl
cmovne ecx, eax
mov eax, dword [ebp - 8]
and eax, 0xffffefff
or ecx, eax
xor eax, eax
and ecx, 0xfff41fff
cmp byte [ebx + 0xe87], al
cmovne eax, edx
and esi, 3
or ecx, eax
and edi, 3
mov eax, dword [ebx + 0x1634]
and ecx, 0xfffbffff
and eax, 1
mov edx, 0x40000
shl eax, 4
or eax, esi
lea esi, [ebx + 0x286c]
shl eax, 2
or eax, edi
shl eax, 0xd
or ecx, eax
xor eax, eax
cmp byte [ebx + 0xe82], al
cmovne eax, edx
or ecx, eax
mov dword [ebx + 0x25b4], ecx
mov al, byte [ebx + 0xe83]
mov byte [ebx + 0x25fc], al
mov al, byte [ebx + 0xe84]
mov byte [ebx + 0x25fd], al
mov al, byte [ebx + 0xe85]
mov byte [ebx + 0x25fe], al
mov al, byte [ebx + 0xe86]
mov byte [ebx + 0x25ff], al
mov al, byte [ebx + 0x1610]
mov byte [ebx + 0x25ed], al
movzx eax, word [ebx + 0xf18]
mov word [ebx + 0x25ee], ax
movzx eax, word [ebx + 0xf1c]
mov word [ebx + 0x25f0], ax
xor eax, eax
mov dword [ebx + 0x25f2], eax
lea eax, [ebx + 0x2624]
test eax, eax
je 0x103c2c58
test esi, esi
je 0x103c2c48
mov ecx, 0x29
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x103c2c68
push 0xa4
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea eax, [ebx + 0x26c8]
lea esi, [ebx + 0x3910]
test eax, eax
je 0x103c2c97
test esi, esi
je 0x103c2c87
mov ecx, 0x30
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x103c2ca7
push 0xc0
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
cmp byte [ebx + 0x6828], 0
je 0x103c2d53
cmp byte [ebx + 0x6829], 0
je 0x103c2d53
cmp dword [ebx + 0x481c], 0xffffffff
je 0x103c2d53
movzx eax, word [ebx + 0x2472]
xor edx, edx
movzx edi, word [ebx + 0x2470]
inc eax
mov dword [ebp + 8], eax
inc edi
movzx eax, word [ebx + 0x24d0]
mov ecx, edi
inc eax
shr ecx, 1
shl eax, 0xe
add eax, ecx
movzx esi, word [ebx + 0x24d2]
div edi
mov ecx, dword [ebp + 8]
xor edx, edx
movzx edi, ax
lea eax, [esi + 1]
shl eax, 0xe
shr ecx, 1
add eax, ecx
mov word [ebx + 0x2768], di
div dword [ebp + 8]
movzx ecx, ax
lea eax, [edi + 8]
shr eax, 4
mov word [ebx + 0x276a], cx
mov word [ebx + 0x276c], ax
lea eax, [ecx + 8]
shr eax, 4
mov word [ebx + 0x276e], ax
mov eax, 1
or dword [ebx + 0x2764], 0x2000000
mov word [ebx + 0x26bc], ax
lea edx, [ebx + 0x2790]
lea ecx, [ebx + 0x1640]
test edx, edx
je 0x103c2d7a
test ecx, ecx
je 0x103c2d73
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x103c2d8a
xorps xmm0, xmm0
movq qword [edx], xmm0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
or dword [ebx + 0x2788], 0x80000000
mov ecx, ebx
movzx eax, word [ebx + 0x24b2]
inc eax
push 1
push eax
movzx eax, word [ebx + 0x24b0]
inc eax
push eax
call fcn.103e5870
mov ecx, dword [ebx + 0x2788]
xor ecx, eax
pop edi
and ecx, 0x7fffffff
xor dword [ebx + 0x2788], ecx
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8