Function at 0x835590
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
push edi
push esi
push ebx
push eax
mov eax, 0x2e68
call fcn.00de3400
sub esp, eax
mov eax, dword [esp + 0x2e68]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x84], 0xfc74c0
mov ebx, eax
mov eax, dword [eax + 0x21c]
mov ecx, dword [ebx + 0x2ff0]
mov esi, dword [ebx + 0x2fe8]
mov edx, dword [ebx + 0x218]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x2e80]
mov dword [esp + 0x54], ecx
mov edi, dword [ebx + 0x2fec]
shl esi, cl
mov ebp, dword [esp + 0x54]
movzx ecx, byte [esp + 0x54]
imul eax, esi
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x2e80]
sub ebp, dword [esp + 0x40]
add eax, dword [esp + 0x8c]
shl edi, cl
add edx, 1
mov ecx, ebp
add esi, 1
shl eax, cl
shl edx, cl
shl esi, cl
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x64], edi
mov dword [esp + 0x44], eax
test ecx, ecx
je 0x83565a
mov edi, dword [ebx + 0x20b888]
lea eax, [eax + eax*4 - 5]
add eax, eax
add eax, edi
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x2e80]
mov dword [esp + 0x88], 0xfc74c0
test eax, eax
je 0x83568c
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x48]
mov ecx, dword [ebx + 0x20b888]
lea eax, [eax + eax*4]
add eax, eax
add eax, ecx
mov dword [esp + 0x88], eax
cmp dword [esp + 0x48], edx
mov eax, 0xfc74c0
jle 0x8356a8
mov edi, dword [esp + 0x44]
lea eax, [edi + edi*4 + 5]
mov edi, dword [ebx + 0x20b888]
lea eax, [edi + eax*2]
cmp dword [esp + 0x64], esi
mov edi, 0xfc74c0
jle 0x8356c7
mov ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x48]
mov esi, dword [ebx + 0x20b888]
lea edi, [ecx + ecx*4]
lea edi, [esi + edi*2]
mov ecx, dword [esp + 0x2e80]
test ecx, ecx
setne byte [esp + 0x4c]
je 0x8356e6
mov esi, dword [esp + 0x8c]
test esi, esi
jne 0x8359a8
mov esi, dword [esp + 0x84]
cmp edx, dword [esp + 0x48]
jge 0x8356fe
cmp byte [esp + 0x4c], 0
jne 0x8359c2
mov dword [esp + 0xa0], esi
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
movzx edx, byte [edx + 5]
movzx ecx, byte [ecx + 6]
mov byte [esp + 0x60], dl
mov edx, dword [esp + 0x84]
mov byte [esp + 0x74], cl
mov ecx, dword [ebx + 0x1170]
movzx edx, byte [edx + 7]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x84]
mov byte [esp + 0x7b], dl
mov edx, dword [ebx + 0x1174]
mov dword [esp + 0xa8], edx
mov edx, dword [ebx + 0x1040]
mov dword [esp + 0x7c], edx
mov edx, dword [ebx + 0x1044]
mov dword [esp + 0x80], edx
mov edx, dword [ebx + 0x1048]
mov dword [esp + 0xb0], edx
mov edx, dword [ebx + 4]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x70], edx
movzx edx, byte [ecx + 4]
mov ecx, dword [esp + 0x88]
add edx, edx
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0x90], edx
movzx edx, byte [ecx + 4]
add edx, edx
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x84]
movsx edx, word [edx]
mov dword [esp + 0x58], edx
movsx edx, word [ecx]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x4c]
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add edx, edx
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0x94], edx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
movsx ecx, word [ecx + 2]
movsx edx, word [edx + 2]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x50], edx
mov edx, ecx
sub edx, dword [esp + 0x50]
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add edx, edx
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x84]
movzx edx, byte [edx + 9]
mov byte [esp + 0xb8], dl
mov edx, dword [esp + 0x88]
movzx edx, byte [edx + 9]
mov byte [esp + 0xb9], dl
movzx edx, byte [esi + 9]
mov byte [esp + 0xba], dl
mov edx, dword [esp + 0xa0]
movzx edx, byte [edx + 9]
mov byte [esp + 0xbb], dl
mov edx, dword [ebx + 0x2f40]
test edx, edx
jne 0x836fbb
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x2e04], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x2e08], esi
mov esi, dword [esp + 0x50]
movsx ecx, word [ecx + 2]
mov dword [esp + 0x2e0c], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x2e10], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x6c], ecx
movsx edx, word [edx]
mov dword [esp + 0x2e18], ecx
mov ecx, dword [ebx + 0x20b888]
mov dword [esp + 0x68], edx
mov dword [esp + 0x2e14], edx
lea edx, [esi + esi*4]
lea edx, [ecx + edx*2]
movzx ecx, word [edx]
mov word [esp + 0x2e4c], cx
movzx edx, word [edx + 2]
mov word [esp + 0x2e4e], dx
movzx edx, word [eax]
mov word [esp + 0x2e50], dx
movzx eax, word [eax + 2]
mov word [esp + 0x2e52], ax
movzx eax, word [edi]
mov word [esp + 0x2e54], ax
movzx eax, word [edi + 2]
mov dword [ebx + 0x20c92c], 2
mov dword [ebx + 0x20e9f4], 0
mov dword [ebx + 0x20e9f0], 0
mov word [esp + 0x2e56], ax
mov dword [ebx + 0x20e898], 0
mov edi, dword [ebx + 0x20e9bc]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xac], edi
cmp edi, eax
jne 0x8374da
mov edx, dword [ebx + 0x20e9c0]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x3c], edx
cmp edx, ecx
jne 0x8374be
mov esi, dword [ebx + 0x20e894]
mov edi, dword [ebx + 0x2fd0]
mov ecx, dword [ebx + 0x2fcc]
movzx edx, byte [esi + 0x1b0]
cmp edx, 0xe
jbe switch.0x008359fe
mov edx, ecx
sar edx, 7
jmp 0x835a20
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x48]
lea ecx, [ecx + ecx*4 - 5]
lea esi, [ecx + ecx]
add esi, dword [ebx + 0x20b888]
jmp 0x8356ed
test byte [esp + 0x8c], 1
jne 0x835a05
mov edx, dword [esp + 0x44]
mov ecx, ebp
sub edx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
mov edx, 1
shl edx, cl
mov ecx, dword [ebx + 0x20b888]
add edx, dword [esp + 0x4c]
lea edx, [edx + edx*4]
add edx, edx
add edx, ecx
mov dword [esp + 0xa0], edx
jmp 0x835705
jmp dword [edx*4 + 0xfc72d4]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xa0], esi
test ecx, ecx
jne 0x835705
jmp 0x8359cc
lea edx, [ecx + ecx]
sar edx, 7
mov dword [ebx + 0x20e904], edx
movzx edx, byte [esi + 0x1b4]
cmp edx, 0xe
jbe switch.0x00836c16
mov edx, ecx
sar edx, 7
nop
lea esi, [esi]
mov dword [ebx + 0x20e908], edx
movzx edx, byte [esi + 0x1b8]
cmp edx, 0xe
jbe switch.0x00836c04
mov esi, ecx
sar esi, 7
nop
lea esi, [esi]
mov eax, 4
mov ebp, 1
mov ecx, eax
xor edx, edx
sub ecx, dword [esp + 0x40]
mov dword [ebx + 0x20e90c], esi
mov esi, dword [esp + 0x8c]
mov dword [ebx + 0x20e664], 1
shl ebp, cl
mov ecx, eax
test byte [esp + 0x70], 0x10
not esi
setne dl
lea edi, [edx + 1]
mov edx, dword [ebx + 0x20e9e0]
sub ecx, dword [esp + 0x54]
imul esi, ebp
add edx, 0x1801
mov dword [ebx + 0x20e9e4], edx
mov edx, dword [esp + 0x8c]
neg edx
imul edx, ebp
sub edx, 0xd
mov dword [esp + 0x70], edx
mov dword [ebx + 0x20e924], edx
mov edx, dword [esp + 0x2e80]
neg edx
imul edx, ebp
sub edx, 0xd
mov dword [ebx + 0x20e92c], edx
mov edx, dword [esp + 0x48]
shl edx, cl
lea eax, [esi + edx + 0xd]
mov esi, dword [esp + 0x2e80]
mov edx, dword [esp + 0x64]
mov dword [ebx + 0x20e928], eax
not esi
imul esi, ebp
shl edx, cl
mov ecx, edi
lea esi, [esi + edx + 0xd]
mov edx, eax
shl edx, cl
cmp dword [esp + 0x58], edx
mov dword [ebx + 0x20e930], esi
jle 0x835b24
mov dword [esp + 0x2e04], edx
mov dword [esp + 0x58], edx
mov ecx, edi
shl esi, cl
cmp dword [esp + 0x5c], esi
jle 0x835b39
mov dword [esp + 0x2e08], esi
mov dword [esp + 0x5c], esi
cmp dword [esp + 0x4c], edx
jle 0x835b4a
mov dword [esp + 0x2e0c], edx
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x50], esi
jle 0x835b5b
mov dword [esp + 0x2e10], esi
mov dword [esp + 0x50], esi
mov eax, dword [esp + 0x70]
mov ecx, edi
shl eax, cl
cmp dword [esp + 0x68], eax
mov dword [esp + 0x48], eax
jge 0x835b78
mov dword [esp + 0x2e14], eax
mov dword [esp + 0x68], eax
cmp edx, dword [esp + 0x68]
jge 0x835b89
mov dword [esp + 0x2e14], edx
mov dword [esp + 0x68], edx
cmp dword [esp + 0x6c], esi
jle 0x835b9a
mov dword [esp + 0x2e18], esi
mov dword [esp + 0x6c], esi
mov edx, dword [esp + 0x4c]
cmp dword [esp + 0x58], edx
jle 0x836be4
mov esi, dword [esp + 0x68]
cmp edx, esi
jge 0x835bbd
mov eax, dword [esp + 0x58]
cmp esi, eax
cmovle eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x5c], edx
mov dword [esp + 0x2e1c], eax
jle 0x836bc4
mov esi, dword [esp + 0x6c]
cmp edx, esi
jge 0x835beb
mov eax, dword [esp + 0x5c]
cmp esi, eax
cmovle eax, esi
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x2e80]
mov eax, dword [esp + 0x50]
test edx, edx
mov dword [esp + 0x2e20], eax
jne 0x836bad
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov dword [ebx + 0x20e934], edx
mov dword [ebx + 0x20e938], esi
mov edx, dword [esp + 0x2e80]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x8c]
mov esi, dword [ebx + 0x2f68]
imul edx, ebp
add edx, dword [esp + 0x7c]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x2e80]
imul edx, dword [esp + 0xa8]
add edx, dword [esp + 0x8c]
imul edx, ebp
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x80]
sar edx, 1
add ecx, edx
add edx, dword [esp + 0xb0]
test esi, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edx
jle 0x8373c4
mov esi, dword [esp + 0x2e80]
mov ecx, edi
xor edi, edi
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x68], 0x10000
mov edx, dword [esp + 0xac]
sar dword [esp + 0x68], cl
imul esi, ebp
imul eax, ebp
lea ecx, [ebx + 0x20c8b0]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], ebp
mov ebp, ebx
mov dword [esp + 0x80], 0
shl esi, 2
mov dword [esp + 0x54], esi
mov esi, ebx
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0x7fffffff
mov dword [esp + 0x48], ecx
jmp 0x835d0c
mov edx, dword [ebx + 0x20e9bc]
mov eax, dword [ebx + 0x20e9c0]
mov ecx, dword [esp + 0x64]
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0x50]
imul eax, dword [esp + 0x4c]
mov dword [ebx + 0x20e93c], ecx
mov ecx, dword [esp + 0x70]
add edx, dword [esi + 0x1280]
add eax, dword [esp + 0x50]
mov dword [ebx + 0x20e97c], edx
mov edx, dword [esp + 0x6c]
sar eax, 1
mov dword [ebx + 0x20e940], edx
mov edx, dword [esi + 0x1284]
mov dword [ebx + 0x20e944], ecx
lea ecx, [esp + 0x2e4c]
add edx, eax
mov dword [ebx + 0x20e980], edx
mov edx, dword [esp + 0x44]
add eax, dword [esi + 0x1288]
mov dword [ebx + 0x20e984], eax
lea eax, [esp + 0x2dfc]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x2e58]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x2e5c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x48]
mov dword [esp], edx
call fcn.00911880
mov edx, dword [esp + 0x2e58]
cmp dword [ebx + 0x20e924], edx
jg 0x8373fa
cmp edx, dword [ebx + 0x20e928]
jg 0x837416
mov edx, dword [esp + 0x2e5c]
cmp dword [ebx + 0x20e92c], edx
jg 0x837432
cmp edx, dword [ebx + 0x20e930]
jg 0x83744e
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x2e58]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x2e5c]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [ebx + 0x20e9e8]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x2e5c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2e58]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 0
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
call fcn.00911770
lea edx, [edi + edi]
mov ecx, 0x1f
or edx, 1
bsr edx, edx
xor edx, 0x1f
sub ecx, edx
mov edx, ecx
add edx, edx
imul edx, dword [ebx + 0x20e904]
add edx, eax
mov eax, dword [ebp + 0x2f6c]
test eax, eax
je 0x835ee3
mov ecx, dword [esp + 0x2e58]
add eax, dword [esp + 0x54]
mov word [eax], cx
mov ecx, dword [esp + 0x2e5c]
mov word [eax + 2], cx
mov ecx, dword [esp + 0x54]
mov eax, dword [ebp + 0x2f8c]
mov dword [eax + ecx], edx
cmp edx, dword [esp + 0x5c]
jge 0x835f0a
mov eax, dword [esp + 0x2e58]
mov ecx, dword [esp + 0x2e5c]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], ecx
add edi, 1
add esi, 0x120
add ebp, 4
cmp dword [ebx + 0x2f68], edi
jg 0x835d00
mov ecx, dword [ebx + 0x2ff0]
mov ebp, dword [esp + 0x44]
mov esi, dword [ebx + 0x21c]
mov dword [esp + 0x54], ecx
mov ecx, dword [ebx + 0x218]
mov edx, esi
movzx eax, byte [esp + 0xb9]
movzx edi, byte [esp + 0xb8]
sub edx, ecx
add edx, dword [ebx + 0x10]
cmp dword [ebx + 0x14], 0x80000000
adc edx, 0
add edi, eax
movzx eax, byte [esp + 0xba]
sub ecx, esi
lea esi, [ebx + 8]
mov dword [esp + 0x50], esi
lea edi, [eax + edi*2]
movzx eax, byte [esp + 0xbb]
add eax, edi
mov dword [esp + 0xb0], eax
mov eax, dword [ebx + 0xc]
lea edi, [esp + 0x29c4]
mov dword [esp + 0x34], edi
or eax, 1
bsr eax, eax
xor eax, 0x1f
lea eax, [eax + edx*8 - 0x1f]
lea eax, [eax + ecx*8]
mov ecx, 0x87
mov dword [esp + 0xac], eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x21c4]
mov dword [esp + 0x2bd8], edi
lea esi, [ebx + 0x1ec0]
mov dword [esp + 0x2bd4], edi
lea edi, [esp + 0xc4]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], esi
mov cx, 0x420
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0x40], ecx
je 0x836009
mov esi, dword [esp + 0xb0]
mov ecx, 1
lea eax, [esp + 0x29c4]
lea edx, [esp + esi + 0xc8]
call fcn.00831ac0
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x84]
movzx eax, byte [ecx + 8]
movzx edx, byte [edi + 8]
lea esi, [edx + eax + 1]
mov edx, dword [esp + 0x29c8]
movzx ecx, byte [esp + esi + 0xc4]
mov eax, edx
imul eax, ecx
sar eax, 8
sub edx, eax
movzx eax, byte [esp + ecx + 0x29d4]
cmp edx, 0xff
mov dword [esp + 0x29c8], edx
mov byte [esp + esi + 0xc4], al
jg 0x836102
mov eax, dword [esp + 0x29c4]
mov ecx, dword [esp + 0x29d0]
lea esi, [esi]
test ecx, ecx
js 0x836b70
cmp eax, 0xff00
jg 0x836b00
mov eax, dword [esp + 0x2bd8]
mov byte [eax], cl
mov ecx, dword [esp + 0x29cc]
add eax, 1
mov dword [esp + 0x2bd8], eax
test ecx, ecx
je 0x8360c3
mov byte [eax], 0xff
mov edx, dword [esp + 0x29cc]
add eax, 1
mov dword [esp + 0x2bd8], eax
sub edx, 1
test edx, edx
mov dword [esp + 0x29cc], edx
jne 0x8360a1
mov eax, dword [esp + 0x29c4]
mov edx, dword [esp + 0x29c8]
mov ecx, eax
sar ecx, 8
mov dword [esp + 0x29d0], ecx
shl eax, 8
shl edx, 8
and eax, 0xffff
cmp edx, 0xff
mov dword [esp + 0x29c4], eax
mov dword [esp + 0x29c8], edx
jle 0x836070
mov eax, dword [ebx + 0x2f68]
cmp eax, 1
jle 0x83615b
mov eax, 0x1f
mov edx, eax
sub eax, dword [esp + 0xa4]
sub edx, dword [esp + 0x90]
lea eax, [edx + eax + 0x24]
shl eax, 5
lea edx, [esp + 0xc4]
add edx, eax
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x837086
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x29c4]
mov dword [esp], 0
call fcn.00834030
mov eax, dword [ebx + 0x2f68]
mov esi, dword [esp + 0x84]
cmp eax, 1
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x84]
movzx esi, word [esi]
movzx ecx, word [edx + 2]
movzx edi, word [edi + 2]
mov word [esp + 0x44], si
mov esi, dword [esp + 0xa0]
mov word [esp + 0x4c], cx
mov word [esp + 0x48], di
movzx edi, word [edx]
movzx ecx, word [esi + 2]
movzx edx, word [esi]
mov word [esp + 0x54], cx
je 0x836f72
mov ecx, dword [esp + 0x7c]
movzx eax, byte [esi + 4]
shl ecx, 5
add ecx, 0x166b7a0
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x90], eax
movsx eax, dx
mov edx, dword [esp + 0x88]
imul eax, dword [esp + 0x90]
lea esi, [eax + 0x80]
movzx eax, byte [edx + 4]
sar esi, 8
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xa4], eax
movsx eax, di
mov edi, dword [esp + 0x84]
imul eax, dword [esp + 0xa4]
lea edx, [eax + 0x80]
movzx eax, byte [edi + 4]
sar edx, 8
mov edi, dword [ecx + eax*4]
movsx eax, word [esp + 0x44]
imul eax, edi
sub eax, 0xffffff80
sar eax, 8
cmp edx, eax
jge 0x836cd9
cmp esi, edx
jg 0x8370ae
movsx eax, word [esp + 0x54]
imul eax, dword [esp + 0x90]
lea ecx, [eax + 0x80]
movsx eax, word [esp + 0x4c]
imul eax, dword [esp + 0xa4]
sar ecx, 8
lea esi, [eax + 0x80]
movsx eax, word [esp + 0x48]
sar esi, 8
imul eax, edi
sub eax, 0xffffff80
sar eax, 8
cmp esi, eax
jge 0x836cc5
cmp ecx, esi
jg 0x8370a2
cmp dword [esp + 0x7c], 1
lea ecx, [esp + 0xc4]
sbb eax, eax
not eax
and eax, 0x10
sub eax, dword [esp + 0x94]
add eax, 0x23
shl eax, 5
add eax, ecx
mov ecx, dword [esp + 0x58]
sub ecx, edx
je 0x836cad
mov edx, eax
lea eax, [esp + 0x29c4]
mov dword [esp], 1
call fcn.00834030
cmp dword [esp + 0x7c], 1
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0xc4]
sbb eax, eax
not eax
and eax, 0x10
sub eax, dword [esp + 0x98]
add eax, 0x23
shl eax, 5
add edx, eax
sub ecx, esi
je 0x836c97
lea eax, [esp + 0x29c4]
mov dword [esp], 1
call fcn.00834030
mov esi, dword [esp + 0x2bd8]
mov ecx, ebp
mov edi, dword [esp + 0x2bd4]
mov eax, dword [ebx + 0x2fd0]
sub esi, edi
mov dword [esp + 0x94], esi
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x29c8]
add esi, dword [esp + 0x29cc]
cmp dword [esp + 0x29d0], 0x80000000
adc esi, 0
or eax, 1
imul ecx, ebp
bsr eax, eax
xor eax, 0x1f
test ebp, ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0x90], eax
mov dword [esp + 0x4c], ecx
jle 0x8371f8
mov esi, dword [esp + 0x64]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x48], ebx
mov ebx, eax
ret
mov edi, esi
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x9c]
xor eax, eax
movzx edx, byte [edi + eax]
add eax, 1
add ecx, edx
cmp eax, ebp
jne 0x836383
add ebx, 1
add edi, esi
cmp ebx, ebp
jne 0x836381
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0x44]
shr eax, 0x1f
add eax, dword [esp + 0x4c]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], ecx
sar eax, 1
add eax, ecx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
xor eax, eax
mov ebx, eax
xor eax, eax
movzx ecx, byte [esi + eax]
add eax, 1
add edx, dword [ecx*4 + 0x1320d20]
cmp eax, ebp
jne 0x8363d8
add ebx, 1
add esi, edi
cmp ebx, ebp
jne 0x8363d6
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x64]
neg eax
add eax, eax
imul ecx, eax
mov eax, dword [esp + 0x44]
imul eax, eax
mov esi, dword [esp + 0x4c]
imul eax, dword [esp + 0x4c]
sar ebp, 1
sar esi, 2
add eax, ecx
add eax, edx
test ebp, ebp
mov dword [esp + 0x9c], eax
mov dword [esp + 0x4c], esi
jle 0x837219
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x6c]
xor edi, edi
mov ebx, dword [esp + 0xa8]
xor edx, edx
xor eax, eax
movzx ecx, byte [esi + eax]
add eax, 1
add edx, ecx
cmp eax, ebp
jne 0x836447
add edi, 1
add esi, ebx
cmp edi, ebp
jne 0x836445
mov eax, dword [esp + 0x4c]
xor edi, edi
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x70]
shr eax, 0x1f
add eax, dword [esp + 0x4c]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0xa8]
sar eax, 1
mov dword [esp + 0x54], eax
add eax, edx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x48], eax
xor eax, eax
movzx ecx, byte [esi + eax]
add eax, 1
add edx, ecx
cmp eax, ebp
jne 0x836496
add edi, 1
add esi, ebx
cmp edi, ebp
jne 0x836494
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
lea edi, [esp + 0x2be0]
mov ecx, 0x87
mov esi, dword [esp + 0x50]
mov dword [esp + 0x38], edi
add eax, edx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x25c4]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x1144]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x2df4], eax
mov dword [esp + 0x2df0], eax
mov dword [esp + 0xa8], edi
mov cx, 0x420
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x40]
cmp dword [ebx + 0x2ff0], edx
je 0x836531
mov ecx, dword [esp + 0xb0]
lea eax, [esp + 0x2be0]
lea edx, [esp + ecx + 0x1148]
mov ecx, 1
call fcn.00831ac0
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
movzx edx, byte [esi + 8]
movzx eax, byte [edi + 8]
lea edi, [edx + eax + 1]
mov edx, dword [esp + 0x2be4]
movzx esi, byte [esp + edi + 0x1144]
mov ecx, edx
mov eax, edx
imul ecx, esi
sar ecx, 8
sub eax, ecx
mov edx, ecx
mov dword [esp + 0x2be4], ecx
movzx ecx, byte [esp + esi + 0x2cf0]
add eax, dword [esp + 0x2be0]
cmp edx, 0xff
mov dword [esp + 0x2be0], eax
mov byte [esp + edi + 0x1144], cl
jg 0x836632
mov ecx, dword [esp + 0x2bec]
nop
test ecx, ecx
js 0x836b81
cmp eax, 0xff00
jg 0x836a90
mov eax, dword [esp + 0x2df4]
mov byte [eax], cl
mov edi, dword [esp + 0x2be8]
add eax, 1
mov dword [esp + 0x2df4], eax
test edi, edi
je 0x8365f3
mov byte [eax], 0xff
mov edx, dword [esp + 0x2be8]
add eax, 1
mov dword [esp + 0x2df4], eax
sub edx, 1
test edx, edx
mov dword [esp + 0x2be8], edx
jne 0x8365d1
mov eax, dword [esp + 0x2be0]
mov edx, dword [esp + 0x2be4]
mov ecx, eax
sar ecx, 8
mov dword [esp + 0x2bec], ecx
shl eax, 8
shl edx, 8
and eax, 0xffff
cmp edx, 0xff
mov dword [esp + 0x2be0], eax
mov dword [esp + 0x2be4], edx
jle 0x8365a0
movzx eax, byte [esp + 0x60]
mov ecx, dword [esp + 0x44]
sub ecx, eax
je 0x836c28
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1164]
mov dword [esp], 1
call fcn.00834030
movzx eax, byte [esp + 0x74]
mov ecx, dword [esp + 0x48]
sub ecx, eax
je 0x836c51
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1184]
mov dword [esp], 1
call fcn.00834030
movzx eax, byte [esp + 0x7b]
mov ecx, dword [esp + 0x4c]
sub ecx, eax
je 0x836c7a
lea edx, [esp + 0x11a4]
lea eax, [esp + 0x2be0]
mov dword [esp], 1
call fcn.00834030
mov edx, dword [esp + 0x2df0]
mov eax, dword [esp + 0x2df4]
mov ecx, dword [ebx + 0x2fd0]
sub eax, edx
mov edx, dword [esp + 0x2be8]
mov dword [esp + 0x64], eax
add edx, eax
mov eax, dword [esp + 0x2be4]
cmp dword [esp + 0x2bec], 0x80000000
adc edx, 0
or eax, 1
bsr eax, eax
xor eax, 0x1f
lea eax, [eax + edx*8 - 0x1f]
sub eax, dword [esp + 0xac]
imul eax, ecx
sar eax, 7
add eax, dword [esp + 0x9c]
mov dword [esp + 0x54], eax
lea eax, [ecx + ecx*4]
lea eax, [eax + eax + 0xfe00ff]
cmp dword [esp + 0x54], eax
jg 0x83746a
mov ecx, dword [esp + 0x54]
test ecx, ecx
js 0x837486
cmp dword [esp + 0x44], 0xff
ja 0x8374a2
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x40]
lea eax, [esi + ecx*8 - 0x1f]
sub eax, dword [esp + 0xac]
imul eax, dword [esp + 0xa4]
sar eax, 7
add eax, dword [esp + 0x5c]
test edx, edx
mov dword [esp + 0x5c], eax
jne 0x83679b
mov edi, dword [esp + 0x54]
mov esi, eax
sar esi, 8
sar edi, 8
cmp esi, edi
jl 0x8369fc
cmp esi, 0x40
jle 0x8369fc
mov eax, dword [ebx + 0x20dafc]
add dword [ebx + 0x20e9cc], eax
mov edx, dword [esp + 0x40]
cmp dword [ebx + 0x2ff0], edx
je 0x836848
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x50]
lea edx, [ebx + ecx + 0x1ec4]
xor ecx, ecx
call fcn.00831ac0
mov ebp, dword [esp + 0x8c]
mov eax, ebx
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x2e80]
add ebp, ebp
add esi, 1
mov ecx, ebp
add edi, edi
mov edx, esi
mov dword [esp], edi
call fcn.00835590
lea ecx, [ebp + 1]
mov edx, esi
mov dword [esp + 0x6c], ecx
mov dword [esp], edi
add edi, 1
mov dword [esp + 0x70], eax
mov eax, ebx
call fcn.00835590
mov ecx, ebp
mov edx, esi
mov dword [esp], edi
add eax, dword [esp + 0x70]
mov dword [esp + 0x70], eax
mov eax, ebx
call fcn.00835590
mov ebp, dword [esp + 0x70]
mov edx, esi
mov ecx, dword [esp + 0x6c]
mov dword [esp], edi
add ebp, eax
mov eax, ebx
call fcn.00835590
add ebp, eax
mov eax, dword [ebx + 0x2fd0]
sar eax, 7
add eax, ebp
cmp eax, dword [esp + 0x54]
jl 0x8371af
mov esi, dword [esp + 0x54]
cmp dword [esp + 0x5c], esi
jg 0x836ced
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0x21c4]
mov esi, dword [esp + 0xb4]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp], esi
call sub.msvcrt.dll_memcpy
mov edi, dword [esp + 0x50]
mov ecx, 0x87
mov esi, dword [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebx + 0x2fe8]
mov ecx, dword [ebx + 0x2ff0]
mov dword [esp + 0x48], 1
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0x94]
shl edx, cl
mov edi, dword [esp + 0xbc]
sub ecx, dword [esp + 0x40]
mov dword [ebx + 0x21c], eax
mov eax, dword [esp + 0x2e80]
shl dword [esp + 0x48], cl
movzx esi, word [esp + 0x80]
mov dword [ebx + 0x218], edi
movzx ebp, byte [esp + 0x40]
imul eax, edx
movzx edi, byte [esp + 0x7c]
add eax, dword [esp + 0x8c]
shl eax, cl
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
test eax, eax
jle 0x8369a2
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x48]
add eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x44], 0
lea ecx, [eax + eax*4]
lea eax, [edx + edx*4]
add ecx, ecx
add eax, eax
mov dword [esp + 0x40], eax
mov eax, ebx
mov ebx, edi
mov edi, eax
nop
lea esi, [esi]
mov eax, ecx
mov ecx, ebp
xor edx, edx
mov ebp, eax
mov word [esp + 0x50], si
mov byte [esp + 0x54], cl
movzx ecx, word [esp + 0x58]
lea eax, [ebp + edx]
add edx, 0xa
add eax, dword [edi + 0x20b888]
cmp edx, dword [esp + 0x40]
mov word [eax], cx
movzx ecx, byte [esp + 0x60]
mov word [eax + 2], si
mov byte [eax + 4], bl
mov byte [eax + 8], 0
mov byte [eax + 5], cl
movzx ecx, byte [esp + 0x74]
mov byte [eax + 6], cl
movzx ecx, byte [esp + 0x7b]
mov byte [eax + 7], cl
movzx ecx, byte [esp + 0x54]
mov byte [eax + 9], cl
jne 0x836941
mov eax, ebp
mov ebp, ecx
add dword [esp + 0x44], 1
mov ecx, eax
mov eax, dword [esp + 0x48]
add ecx, dword [esp + 0x4c]
cmp dword [esp + 0x44], eax
jne 0x836930
mov ebx, edi
mov edi, dword [esp + 0x68]
lea esi, [esp + 0xc4]
mov eax, 0x1080
test edi, 1
jne 0x837286
test edi, 2
jne 0x8372ab
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x8369e2
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x8369ed
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [esp + 0x5c]
add esp, 0x2e6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0x20e9cc]
cmp esi, 0xfe
mov dword [esp + 0x70], eax
jbe 0x8370ce
cmp esi, 0xfff
mov eax, esi
ja 0x837263
shr eax, 4
movzx edx, byte [eax + 0x11354c0]
shr dl, 2
movzx edx, dl
mov eax, edx
mov ebp, edx
imul eax, edx
cmp esi, eax
setb al
movzx eax, al
sub ebp, eax
cmp edi, 0xfe
jbe 0x8371e6
cmp edi, 0xfff
mov eax, edi
ja 0x83723c
shr eax, 4
movzx edx, byte [eax + 0x11354c0]
shr dl, 2
movzx edx, dl
mov eax, edx
imul eax, edx
cmp edi, eax
setb al
movzx eax, al
sub edx, eax
mov eax, edx
add ebp, dword [esp + 0x70]
sub ebp, eax
mov dword [ebx + 0x20e9cc], ebp
jmp 0x83679b
cmp eax, 0xffff
jle 0x836ba0
mov eax, dword [esp + 0x2df4]
add ecx, 1
mov byte [eax], cl
mov esi, dword [esp + 0x2be8]
add eax, 1
mov dword [esp + 0x2df4], eax
test esi, esi
je 0x836ae2
lea esi, [esi]
mov byte [eax], 0
mov edx, dword [esp + 0x2be8]
add eax, 1
mov dword [esp + 0x2df4], eax
sub edx, 1
test edx, edx
mov dword [esp + 0x2be8], edx
jne 0x836ac0
mov eax, dword [esp + 0x2be0]
mov edx, dword [esp + 0x2be4]
movzx ecx, ah
mov dword [esp + 0x2bec], ecx
jmp 0x83660d
cmp eax, 0xffff
jle 0x836b92
mov eax, dword [esp + 0x2bd8]
add ecx, 1
mov byte [eax], cl
mov edx, dword [esp + 0x29cc]
add eax, 1
mov dword [esp + 0x2bd8], eax
test edx, edx
je 0x836b52
lea esi, [esi]
mov byte [eax], 0
mov edx, dword [esp + 0x29cc]
add eax, 1
mov dword [esp + 0x2bd8], eax
sub edx, 1
test edx, edx
mov dword [esp + 0x29cc], edx
jne 0x836b30
mov eax, dword [esp + 0x29c4]
mov edx, dword [esp + 0x29c8]
movzx ecx, ah
mov dword [esp + 0x29d0], ecx
jmp 0x8360dd
mov ecx, eax
sar ecx, 8
mov dword [esp + 0x29d0], ecx
jmp 0x8360dd
mov ecx, eax
sar ecx, 8
mov dword [esp + 0x2bec], ecx
jmp 0x83660d
add dword [esp + 0x29cc], 1
jmp 0x8360dd
add dword [esp + 0x2be8], 1
jmp 0x83660d
mov edx, eax
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x20e938], edx
mov dword [ebx + 0x20e934], eax
jmp 0x835c19
mov edx, dword [esp + 0x6c]
cmp dword [esp + 0x50], edx
jle 0x835beb
mov esi, dword [esp + 0x5c]
cmp edx, esi
cmovge esi, edx
mov dword [esp + 0x50], esi
jmp 0x835beb
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x4c], edx
jle 0x835bbd
mov esi, dword [esp + 0x58]
cmp edx, esi
cmovge esi, edx
mov dword [esp + 0x4c], esi
jmp 0x835bbd
jmp dword [edx*4 + 0xfc7310]
lea esi, [ecx + ecx]
sar esi, 7
jmp 0x835a60
jmp dword [edx*4 + 0xfc734c]
lea edx, [ecx + ecx]
sar edx, 7
jmp 0x835a40
mov ecx, 1
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1164]
call fcn.00831ac0
movzx eax, byte [esp + 0x74]
mov ecx, dword [esp + 0x48]
sub ecx, eax
jne 0x83666e
mov ecx, 1
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1184]
call fcn.00831ac0
movzx eax, byte [esp + 0x7b]
mov ecx, dword [esp + 0x4c]
sub ecx, eax
jne 0x836699
mov ecx, 1
lea edx, [esp + 0x11a4]
lea eax, [esp + 0x2be0]
call fcn.00831ac0
jmp 0x8366b3
mov ecx, 1
lea eax, [esp + 0x29c4]
call fcn.00831ac0
jmp 0x8362fe
mov edx, eax
mov ecx, 1
lea eax, [esp + 0x29c4]
call fcn.00831ac0
jmp 0x8362ba
cmp ecx, esi
jge 0x836277
cmp eax, ecx
mov esi, ecx
cmovge esi, eax
jmp 0x836277
cmp esi, edx
jge 0x83622d
cmp eax, esi
mov edx, esi
cmovge edx, eax
jmp 0x83622d
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
cmp dword [ebx + 0x2f68], 1
movzx eax, word [edi + 2]
movzx esi, word [edx + 2]
movzx ecx, word [edi]
mov edi, dword [esp + 0xa0]
movzx ebp, word [edx]
mov word [esp + 0x58], si
mov word [esp + 0x60], ax
movzx edx, word [edi]
movzx esi, word [edi + 2]
je 0x83716a
movzx eax, byte [edi + 4]
movsx ebp, bp
mov edi, dword [eax*4 + 0x166b7a0]
movsx eax, dx
mov edx, dword [esp + 0x88]
imul eax, edi
movzx edx, byte [edx + 4]
sub eax, 0xffffff80
mov edx, dword [edx*4 + 0x166b7a0]
sar eax, 8
imul ebp, edx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x84]
sub ebp, 0xffffff80
movzx edx, byte [edx + 4]
sar ebp, 8
mov edx, dword [edx*4 + 0x166b7a0]
mov dword [esp + 0x74], edx
movsx edx, cx
imul edx, dword [esp + 0x74]
sub edx, 0xffffff80
sar edx, 8
cmp ebp, edx
jge 0x8371d2
cmp eax, ebp
jle 0x836d9e
cmp eax, edx
mov ebp, edx
cmovle ebp, eax
movsx edx, word [esp + 0x58]
movsx eax, si
movsx ecx, word [esp + 0x60]
imul eax, edi
imul edx, dword [esp + 0x5c]
imul ecx, dword [esp + 0x74]
sub eax, 0xffffff80
sub edx, 0xffffff80
sub ecx, 0xffffff80
sar edx, 8
sar ecx, 8
sar eax, 8
cmp edx, ecx
jge 0x83719b
cmp eax, edx
jle 0x836ddd
cmp eax, ecx
mov edx, ecx
cmovle edx, eax
mov ecx, dword [esp + 0x64]
lea esi, [esp + 0x25c4]
mov edi, dword [esp + 0xb4]
mov dword [esp + 4], esi
mov dword [esp + 0x30], edx
mov dword [esp + 8], ecx
mov dword [esp], edi
call sub.msvcrt.dll_memcpy
mov edi, dword [esp + 0x50]
mov ecx, 0x87
mov esi, dword [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x2ff0]
mov esi, dword [ebx + 0x2fe8]
mov dword [esp + 0x60], 1
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x30]
shl esi, cl
sub ecx, dword [esp + 0x40]
mov dword [ebx + 0x218], eax
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0x64]
mov edi, edx
shl dword [esp + 0x60], cl
mov dword [ebx + 0x21c], eax
mov eax, dword [esp + 0x2e80]
mov dword [esp + 0x50], esi
imul eax, esi
mov esi, ebp
movzx ebp, byte [esp + 0x40]
add eax, dword [esp + 0x8c]
shl eax, cl
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x836f18
mov edx, dword [esp + 0x50]
mov dword [esp + 0x50], 0
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x60]
add eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
lea ecx, [eax + eax*4]
lea eax, [edx + edx*4]
add ecx, ecx
add eax, eax
mov dword [esp + 0x40], eax
mov eax, ebx
mov ebx, ebp
mov ebp, eax
xor edx, edx
mov dword [esp + 0x5c], ecx
lea esi, [esi]
mov eax, dword [esp + 0x5c]
movzx ecx, byte [esp + 0x44]
add eax, edx
add edx, 0xa
add eax, dword [ebp + 0x20b888]
cmp edx, dword [esp + 0x40]
mov byte [eax + 5], cl
movzx ecx, byte [esp + 0x48]
mov word [eax], si
mov word [eax + 2], di
mov byte [eax + 4], 0
mov byte [eax + 6], cl
movzx ecx, byte [esp + 0x4c]
mov byte [eax + 8], 1
mov byte [eax + 9], bl
mov byte [eax + 7], cl
jne 0x836ec0
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x50], 1
mov eax, dword [esp + 0x60]
add ecx, dword [esp + 0x58]
cmp dword [esp + 0x50], eax
jne 0x836eb3
mov ebx, ebp
mov edi, dword [esp + 0x68]
lea esi, [esp + 0x1144]
mov eax, 0x1080
test edi, 1
jne 0x83730f
test edi, 2
jne 0x8372fb
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x836f58
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x836f63
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [esp + 0x54]
add esp, 0x2e6c
pop ebx
pop esi
pop edi
pop ebp
ret
movsx eax, word [esp + 0x44]
movsx ecx, dx
movsx edx, di
cmp edx, eax
jge 0x8370ba
cmp ecx, edx
jle 0x836f90
cmp ecx, eax
mov edx, eax
cmovle edx, ecx
movsx esi, word [esp + 0x4c]
movsx eax, word [esp + 0x48]
movsx ecx, word [esp + 0x54]
cmp esi, eax
jge 0x8371be
cmp ecx, esi
jle 0x836277
cmp ecx, eax
mov esi, eax
cmovle esi, ecx
jmp 0x836277
mov dword [esp + 0x4c], 1
mov ecx, ebp
movzx edi, byte [esp + 0x40]
shl dword [esp + 0x4c], cl
mov esi, dword [esp + 0x4c]
test esi, esi
jle 0x837079
mov edx, dword [esp + 0x48]
xor ebp, ebp
mov esi, dword [esp + 0x44]
mov dword [esp + 0x44], ebp
mov ebp, ebx
movzx ebx, byte [esp + 0x74]
lea eax, [edx + edx*4]
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x4c]
lea ecx, [esi + esi*4]
add ecx, ecx
lea esi, [eax + eax*4]
add esi, esi
mov dword [esp + 0x40], esi
movzx esi, byte [esp + 0x7b]
nop
mov eax, ecx
mov ecx, esi
xor edx, edx
mov esi, eax
mov byte [esp + 0x50], cl
lea esi, [esi]
movzx ecx, byte [esp + 0x60]
lea eax, [edx + esi]
add edx, 0xa
add eax, dword [ebp + 0x20b888]
cmp edx, dword [esp + 0x40]
mov byte [eax + 5], cl
movzx ecx, byte [esp + 0x50]
mov word [eax], 0
mov word [eax + 2], 0
mov byte [eax + 4], 0
mov byte [eax + 7], cl
mov ecx, edi
mov byte [eax + 6], bl
mov byte [eax + 8], 1
mov byte [eax + 9], cl
jne 0x837020
mov eax, esi
movzx esi, byte [esp + 0x50]
mov ecx, eax
mov eax, dword [esp + 0x4c]
add dword [esp + 0x44], 1
add ecx, dword [esp + 0x48]
cmp dword [esp + 0x44], eax
jne 0x837010
add esp, 0x2e6c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x29c4]
mov ecx, 1
call fcn.00831ac0
mov eax, dword [ebx + 0x2f68]
jmp 0x83615b
cmp eax, ecx
mov esi, ecx
cmovle esi, eax
jmp 0x836277
cmp eax, esi
mov edx, esi
cmovle edx, eax
jmp 0x83622d
cmp ecx, edx
jge 0x836f90
cmp ecx, eax
mov edx, eax
cmovge edx, ecx
jmp 0x836f90
movzx eax, byte [esi + 0x11354c1]
lea ebp, [eax - 1]
sar ebp, 4
jmp 0x836a41
mov edx, 1
jmp 0x835a20
lea edx, [ecx + ecx*2]
sar edx, 8
jmp 0x835a20
mov edx, edi
sar edx, 7
jmp 0x835a20
mov edx, 1
jmp 0x835a40
lea edx, [ecx + ecx*2]
sar edx, 8
jmp 0x835a40
mov edx, edi
sar edx, 7
jmp 0x835a40
lea esi, [ecx*4]
sar esi, 7
jmp 0x835a60
mov esi, 1
jmp 0x835a60
lea esi, [ecx + ecx*2]
sar esi, 8
jmp 0x835a60
mov esi, edi
sar esi, 7
jmp 0x835a60
lea edx, [ecx*4]
sar edx, 7
jmp 0x835a40
lea edx, [ecx*4]
sar edx, 7
jmp 0x835a20
movsx eax, dx
movsx ebp, bp
movsx edx, cx
cmp ebp, edx
jl 0x8372e7
cmp eax, ebp
jge 0x837186
cmp eax, edx
mov ebp, edx
cmovge ebp, eax
movsx edx, word [esp + 0x58]
movsx eax, si
movsx ecx, word [esp + 0x60]
cmp edx, ecx
jl 0x836dd2
cmp eax, edx
jge 0x836ddd
cmp eax, ecx
mov edx, ecx
cmovge edx, eax
jmp 0x836ddd
cmp eax, dword [esp + 0x5c]
jge 0x836848
jmp 0x8369f1
cmp ecx, esi
jge 0x836277
cmp ecx, eax
mov esi, eax
cmovge esi, ecx
jmp 0x836277
cmp eax, ebp
jge 0x836d9e
cmp eax, edx
mov ebp, edx
cmovge ebp, eax
jmp 0x836d9e
movzx eax, byte [edi + 0x11354c1]
sub eax, 1
sar eax, 4
jmp 0x836a7c
mov eax, ecx
xor ecx, ecx
shr eax, 0x1f
add eax, dword [esp + 0x4c]
sar eax, 1
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x44], eax
jmp 0x83640a
mov eax, esi
shr eax, 0x1f
add eax, dword [esp + 0x4c]
sar eax, 1
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0x54], eax
idiv dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x48], eax
jmp 0x8364b0
cmp edi, 0x3fff
jbe 0x8372d3
cmp edi, 0xffff
ja 0x83737c
shr eax, 8
movzx edx, byte [eax + 0x11354c0]
jmp 0x836a6b
cmp esi, 0x3fff
jbe 0x8372bf
cmp esi, 0xffff
ja 0x837334
shr eax, 8
movzx edx, byte [eax + 0x11354c0]
jmp 0x836a30
movzx eax, byte [esp + 0xc4]
lea edi, [ebx + 0x1ec1]
lea esi, [esp + 0xc5]
mov byte [ebx + 0x1ec0], al
mov eax, 0x107f
jmp 0x8369be
movzx edx, word [esi]
sub eax, 2
add esi, 2
mov word [edi], dx
add edi, 2
jmp 0x8369ca
shr eax, 6
movzx edx, byte [eax + 0x11354c0]
shr dl, 1
movzx edx, dl
jmp 0x836a30
shr eax, 6
movzx edx, byte [eax + 0x11354c0]
shr dl, 1
movzx edx, dl
jmp 0x836a6b
cmp eax, ebp
jle 0x837186
cmp eax, edx
mov ebp, edx
cmovle ebp, eax
jmp 0x837186
movzx edx, word [esi]
sub eax, 2
add esi, 2
mov word [edi], dx
add edi, 2
jmp 0x836f40
movzx eax, byte [esp + 0x1144]
lea edi, [ebx + 0x1ec1]
lea esi, [esp + 0x1145]
mov byte [ebx + 0x1ec0], al
mov eax, 0x107f
jmp 0x836f34
shr eax, 0x10
mov ebp, 0x1f
or eax, 1
mov edx, esi
bsr eax, eax
xor eax, 0x1f
sub ebp, eax
sar ebp, 1
lea ecx, [ebp + 2]
shr edx, cl
mov eax, edx
lea ecx, [ebp + 8]
shr eax, cl
movzx eax, byte [eax + 0x11354c0]
mov dword [esp + 0x6c], eax
mov eax, edx
mov ecx, dword [esp + 0x6c]
mul dword [ecx*4 + 0x102c5e0]
mov eax, ecx
mov ecx, ebp
shl eax, cl
add edx, eax
jmp 0x836a30
shr eax, 0x10
mov esi, 0x1f
or eax, 1
mov edx, edi
bsr eax, eax
xor eax, 0x1f
sub esi, eax
sar esi, 1
lea ecx, [esi + 2]
shr edx, cl
mov eax, edx
lea ecx, [esi + 8]
shr eax, cl
movzx eax, byte [eax + 0x11354c0]
mov dword [esp + 0x6c], eax
mov eax, edx
mov ecx, dword [esp + 0x6c]
mul dword [ecx*4 + 0x102c5e0]
mov eax, ecx
mov ecx, esi
shl eax, cl
add edx, eax
jmp 0x836a6b
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0x7fffffff
jmp 0x835f3c
mov dword [esp + 8], 0x196
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.ref_mx___c__xmin
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x197
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.ref_mx___c__xmax
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x198
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.ref_my___c__ymin
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x199
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.ref_my___c__ymax
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x1d9
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.iscore___255255256__s__lambda210
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x1da
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.iscore___0
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x1db
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.l_0__l_255
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x16f
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.c__uvstride__uvstride
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x16e
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.c___stride__stride
call sub.msvcrt.dll__assert
lea esi, [esi]
lea edi, [edi]