Function at 0x8328e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov edi, dword [eax + 0x1170]
mov dword [esp + 0xac], ecx
mov ecx, dword [eax + 0x2ff0]
mov dword [esp + 0x68], 0x10
mov ebp, dword [eax + 0x1160]
sar dword [esp + 0x68], cl
mov esi, dword [esp + 0x68]
mov dword [esp + 0xa8], edx
mov edx, eax
mov ebx, dword [ecx*4 + 0x105bfbc]
mov edx, dword [edx + 4]
mov dword [esp + 0x5c], edi
mov edi, dword [eax + 0x2ff8]
add esi, esi
mov dword [esp + 0xc0], ebx
mov ebx, dword [eax + 0x1040]
movzx edx, byte [edx + 0x1b0]
mov dword [esp + 0x74], esi
mov esi, dword [eax + 0x2fe8]
mov dword [esp + 0x98], ebp
mov ebp, dword [eax + 0x2ffc]
mov dword [esp + 0x6c], eax
cmp edx, 0xe
mov dword [esp + 0xd0], ecx
mov ecx, dword [eax + 0x2fd0]
mov dword [esp + 0xbc], ebx
mov eax, dword [eax + 0x2fcc]
mov dword [esp + 0xdc], esi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], ebp
jbe switch.0x00833a01
sar eax, 7
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0xc8], 0x10
mov ecx, dword [esp + 0xd0]
shr eax, 0x1f
mov ebx, dword [esp + 0xbc]
add eax, dword [esp + 0x68]
mov dword [esp + 0xb4], 0
mov dword [esp + 0x40], ecx
sar eax, 1
cmp dword [esp + 0x68], 8
mov dword [esp + 0xb0], eax
mov dword [esp + 0x78], 0
setne al
cmp dword [esp + 0x68], 0x10
setne byte [esp + 0xbb]
and byte [esp + 0xbb], al
mov eax, dword [esp + 0x5c]
shl eax, 4
cmp dword [esp + 0x5c], 0x6f
cmovg eax, dword [esp + 0xc8]
sar edi, 1
imul ebp, edi
mov dword [esp + 0xd4], edi
mov edi, dword [esp + 0x5c]
lea esi, [eax + eax*2]
imul edi, dword [esp + 0x9c]
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0xdc]
sub ebx, dword [esp + 0x98]
mov dword [esp + 0xc8], eax
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0xc4], edi
mov eax, dword [esp + 0x78]
mov edx, 0x55555556
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0xac]
movzx ecx, byte [esp + 0x40]
imul edx
mov eax, dword [esp + 0x78]
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
add edi, edx
mov edx, dword [esp + 0x68]
sub ebp, eax
add ebp, dword [esp + 0xa8]
lea eax, [edi - 1]
lea ebx, [ebp - 1]
imul edx, ebx
add edx, dword [esp + 0xb0]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x68]
imul edx, eax
add edx, dword [esp + 0xb0]
mov dword [esp + 0x60], edx
mov edx, esi
mov esi, dword [esp + 0x6c]
shl edx, cl
mov ecx, eax
imul ecx, edx
mov esi, dword [esi + 0x2fec]
add ecx, ebx
mov dword [esp + 0x44], esi
lea esi, [ecx + ecx*4]
mov ecx, dword [esp + 0x6c]
add esi, esi
add esi, dword [ecx + 0x20b888]
lea ecx, [esi + 0xa]
mov dword [esp + 0x3c], ecx
lea ecx, [edx + edx*4]
lea ecx, [esi + ecx*2]
mov dword [esp + 0x34], ecx
add ecx, 0xa
test ebx, ebx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx + 0x20f1e8]
mov dword [esp + 0x48], ecx
js 0x833283
cmp ebp, edx
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
cmovl ebx, dword [esp + 0x38]
cmovge ebp, esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
test eax, eax
js 0x833272
mov eax, dword [esp + 0x44]
movzx ecx, byte [esp + 0x40]
mov ebx, dword [esp + 0x3c]
shl eax, cl
cmp edi, eax
mov edi, dword [esp + 0x34]
cmovl ebx, dword [esp + 0x38]
cmovge edi, esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x70]
test eax, eax
js 0x83324d
mov edi, dword [esp + 0x68]
add edi, dword [esp + 0x70]
cmp dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
jge 0x832d98
mov ebp, dword [esp + 0xa0]
sub ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0xc0]
mov eax, dword [esp + 0x60]
test eax, eax
js 0x832db7
mov ebx, dword [esp + 0x68]
add ebx, dword [esp + 0x60]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x84]
cmp dword [esp + 0x9c], edx
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x60]
jge 0x832bea
mov ecx, dword [esp + 0x9c]
sub ecx, ebx
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x80]
test eax, eax
jg 0x832de9
mov edi, dword [esp + 0x60]
test edi, edi
jns 0x832c3e
mov ebx, dword [esp + 0x5c]
imul ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x5c]
add ebx, dword [esp + 0x70]
add ebx, dword [esp + 0x98]
mov eax, dword [esp + 0x58]
mov dword [esp], ebx
mov dword [esp + 8], edi
add eax, ebx
add ebx, ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
add esi, 1
jne 0x832c21
mov edx, dword [esp + 0x84]
cmp dword [esp + 0x9c], edx
jge 0x832c91
mov ebx, dword [esp + 0xc4]
mov ebp, edx
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x68]
add ebx, dword [esp + 0x70]
add ebx, dword [esp + 0x98]
lea esi, [esi]
mov eax, dword [esp + 0x58]
add esi, 1
mov dword [esp], ebx
mov dword [esp + 8], edi
add eax, ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x5c]
cmp esi, ebp
jne 0x832c70
mov esi, dword [esp + 0x70]
test esi, esi
js 0x8331f4
mov ebx, dword [esp + 0xa4]
cmp dword [esp + 0xa0], ebx
jge 0x832d01
mov esi, dword [esp + 0x84]
cmp dword [esp + 0x60], esi
jge 0x832d01
mov edi, ebx
mov ebx, dword [esp + 0x5c]
mov ebp, esi
imul ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
add ebx, dword [esp + 0xa0]
sub edi, dword [esp + 0xa0]
add ebx, dword [esp + 0x98]
mov eax, dword [esp + 0x58]
add esi, 1
mov dword [esp], ebx
mov dword [esp + 8], edi
add eax, ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x5c]
cmp esi, ebp
jne 0x832ce0
cmp byte [esp + 0xbb], 0
jne 0x833ff7
mov edx, dword [esp + 0x5c]
xor eax, eax
imul edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x98]
add edx, dword [esp + 0x70]
cmp dword [esp + 0x68], 8
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x5c]
sete al
add ecx, edx
mov esi, dword [esp + 0x6c]
add edx, dword [esp + 0xbc]
add eax, 0xf0
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 8], ecx
add edx, 0x20c8b0
mov dword [esp], edx
call dword [esi + eax*4 + 0xc]
add dword [esp + 0x78], 1
add dword [esp + 0xb4], eax
cmp dword [esp + 0x78], 9
je 0x8334d7
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x2ff0]
mov esi, dword [eax + 0x2fe8]
mov dword [esp + 0x40], ecx
jmp 0x832a65
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0xc0]
test eax, eax
mov dword [esp + 0x50], ebx
jns 0x832bac
mov eax, dword [esp + 0x74]
imul eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
add ebx, dword [esp + 0x60]
sub ebp, eax
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], ebx
xor ebx, ebx
test eax, eax
jle 0x832bf9
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x832bf9
lea eax, [edi + edi + 0x15571a0]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x5c]
add edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x24], 0
imul eax, ebx
mov dword [esp + 0x88], edx
add edx, dword [esp + 0xc8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x50]
add eax, edi
add eax, dword [esp + 0x98]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], ebx
mov dword [esp + 8], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00927c40
movzx edx, byte [esi + 8]
mov ecx, edx
and ecx, 1
mov byte [esp + 0x40], dl
mov dword [esp + 0x44], ecx
je 0x8332d5
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 8]
test al, 1
mov byte [esp + 0x4c], al
je 0x8332e1
mov edx, dword [esp + 0x3c]
movzx ecx, byte [esi + 6]
movzx eax, byte [edx + 6]
movzx edx, byte [edx + 5]
sub ecx, eax
movzx eax, byte [esi + 5]
sub eax, edx
mov edx, dword [esp + 0x3c]
or ecx, eax
movzx eax, byte [esi + 7]
movzx edx, byte [edx + 7]
sub eax, edx
or ecx, eax
sete al
movzx eax, al
mov ecx, dword [esp + 0x88]
test eax, eax
mov dword [esp + 0x94], ecx
je 0x833610
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
movzx ecx, byte [ecx + 8]
test eax, eax
mov byte [esp + 0x4c], cl
je 0x833294
and ecx, 1
je 0x833294
mov edx, dword [esp + 0x34]
movzx ecx, byte [esi + 6]
movzx eax, byte [edx + 6]
movzx edx, byte [edx + 5]
sub ecx, eax
movzx eax, byte [esi + 5]
sub eax, edx
mov edx, dword [esp + 0x34]
or ecx, eax
movzx eax, byte [esi + 7]
movzx edx, byte [edx + 7]
sub eax, edx
or ecx, eax
sete al
movzx eax, al
mov ecx, dword [esp + 0x88]
test eax, eax
mov dword [esp + 0x90], ecx
jne 0x832ff3
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 8]
test al, 1
mov byte [esp + 0x90], al
je 0x832f8e
test byte [esp + 0x4c], 1
jne 0x833a55
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
movsx ecx, word [eax + 2]
movsx eax, word [edx + 2]
mov edx, dword [esp + 0x3c]
sub ecx, eax
movsx eax, word [edx]
mov edx, dword [esp + 0x34]
movsx edx, word [edx]
sub eax, edx
mov edx, dword [esp + 0x3c]
or ecx, eax
movzx eax, byte [edx + 4]
mov edx, dword [esp + 0x34]
movzx edx, byte [edx + 4]
sub eax, edx
or ecx, eax
movzx eax, byte [esp + 0x4c]
xor al, byte [esp + 0x90]
and eax, 1
or ecx, eax
sete al
movzx eax, al
mov ecx, dword [esp + 0x94]
test eax, eax
mov dword [esp + 0x90], ecx
je 0x833cf5
mov eax, dword [esp + 0x44]
test eax, eax
je 0x833322
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + 8]
mov byte [esp + 0x44], cl
and ecx, 1
je 0x83332e
mov edx, dword [esp + 0x38]
movzx ecx, byte [esi + 6]
movzx eax, byte [edx + 6]
movzx edx, byte [edx + 5]
sub ecx, eax
movzx eax, byte [esi + 5]
sub eax, edx
or ecx, eax
movzx eax, byte [esi + 7]
mov esi, dword [esp + 0x38]
movzx edx, byte [esi + 7]
sub eax, edx
or ecx, eax
sete al
movzx eax, al
test eax, eax
jne 0x833372
mov eax, dword [esp + 0x3c]
movzx esi, byte [eax + 8]
test esi, 1
je 0x833067
test byte [esp + 0x44], 1
jne 0x833a1c
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
movsx ecx, word [eax + 2]
movsx eax, word [edx + 2]
mov edx, dword [esp + 0x3c]
sub ecx, eax
movsx eax, word [edx]
mov edx, dword [esp + 0x38]
movsx edx, word [edx]
sub eax, edx
mov edx, dword [esp + 0x3c]
or ecx, eax
movzx eax, byte [edx + 4]
mov edx, dword [esp + 0x38]
movzx edx, byte [edx + 4]
sub eax, edx
or ecx, eax
movzx eax, byte [esp + 0x44]
xor esi, eax
mov eax, esi
and eax, 1
or ecx, eax
sete al
movzx eax, al
test eax, eax
jne 0x8339e3
mov edx, dword [esp + 0x34]
movzx esi, byte [edx + 8]
test esi, 1
je 0x833124
test byte [esp + 0x44], 1
je 0x833124
mov esi, dword [esp + 0x38]
movzx ecx, byte [edx + 6]
movzx eax, byte [esi + 6]
sub ecx, eax
movzx eax, byte [edx + 5]
movzx edx, byte [esi + 5]
sub eax, edx
mov edx, dword [esp + 0x34]
or ecx, eax
movzx eax, byte [edx + 7]
movzx edx, byte [esi + 7]
sub eax, edx
or ecx, eax
sete al
movzx eax, al
test eax, eax
je 0x833172
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x8c], ebx
mov eax, ebx
mov edx, ebx
mov ebx, dword [esp + 0x94]
jmp 0x833390
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
movsx ecx, word [eax + 2]
movsx eax, word [edx + 2]
mov edx, dword [esp + 0x34]
sub ecx, eax
movsx eax, word [edx]
mov edx, dword [esp + 0x38]
movsx edx, word [edx]
sub eax, edx
mov edx, dword [esp + 0x34]
or ecx, eax
movzx eax, byte [edx + 4]
mov edx, dword [esp + 0x38]
movzx edx, byte [edx + 4]
sub eax, edx
or ecx, eax
movzx eax, byte [esp + 0x44]
xor eax, esi
and eax, 1
or ecx, eax
sete al
movzx eax, al
test eax, eax
jne 0x833106
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call fcn.00927c40
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
jmp 0x833390
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0x60], ecx
jge 0x832c9d
mov eax, dword [esp + 0x5c]
mov ebp, ecx
mov edi, dword [esp + 0x70]
imul eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x98]
add eax, dword [esp + 0x70]
mov esi, dword [esp + 0x60]
neg edi
add ebx, eax
mov eax, dword [esp + 0x58]
add esi, 1
mov dword [esp], ebx
mov dword [esp + 8], edi
add eax, ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x5c]
cmp esi, ebp
jne 0x833227
jmp 0x832c9d
mov ebx, dword [esp + 0x68]
xor edi, edi
add ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0xc0]
sub ebp, dword [esp + 0x70]
mov dword [esp + 0x50], ebx
mov dword [esp + 0xa4], ebx
jmp 0x832ba0
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], ebp
jmp 0x832b5e
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x34], edx
jmp 0x832b31
mov edx, dword [esp + 0x34]
movsx ecx, word [esi + 2]
movsx eax, word [edx + 2]
movsx edx, word [edx]
sub ecx, eax
movsx eax, word [esi]
sub eax, edx
mov edx, dword [esp + 0x34]
or ecx, eax
movzx eax, byte [esi + 4]
movzx edx, byte [edx + 4]
sub eax, edx
or ecx, eax
movzx eax, byte [esp + 0x4c]
xor al, byte [esp + 0x40]
and eax, 1
or ecx, eax
sete al
movzx eax, al
jmp 0x832f5a
mov ecx, dword [esp + 0x3c]
movzx ecx, byte [ecx + 8]
mov byte [esp + 0x4c], cl
mov edx, dword [esp + 0x3c]
movsx ecx, word [esi + 2]
movsx eax, word [edx + 2]
movsx edx, word [edx]
sub ecx, eax
movsx eax, word [esi]
sub eax, edx
mov edx, dword [esp + 0x3c]
or ecx, eax
movzx eax, byte [esi + 4]
movzx edx, byte [edx + 4]
sub eax, edx
or ecx, eax
movzx eax, byte [esp + 0x4c]
xor al, byte [esp + 0x40]
and eax, 1
or ecx, eax
sete al
movzx eax, al
jmp 0x832ef3
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 8]
mov byte [esp + 0x44], al
mov edx, dword [esp + 0x38]
movsx ecx, word [esi + 2]
movsx eax, word [edx + 2]
movsx edx, word [edx]
sub ecx, eax
movsx eax, word [esi]
sub eax, edx
or ecx, eax
movzx eax, byte [esi + 4]
mov esi, dword [esp + 0x38]
movzx edx, byte [esi + 4]
sub eax, edx
or ecx, eax
movzx eax, byte [esp + 0x44]
xor al, byte [esp + 0x40]
and eax, 1
or ecx, eax
sete al
movzx eax, al
test eax, eax
je 0x83304c
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x8c], edx
mov eax, edx
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x64], 0
sub eax, edi
sub edx, edi
sub ecx, edi
sub ebx, edi
add esi, ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x94], ebx
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x88]
add esi, ebp
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
add edx, edi
add eax, dword [esp + 0x7c]
add ecx, edi
add ebx, edi
mov dword [esp + 0x40], edx
add esi, edi
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x44]
movzx ebx, byte [ebp + eax]
movzx edx, byte [edi + eax]
mov edi, dword [esp + 0x38]
imul ebx, edx
movzx edx, byte [ecx + eax]
movzx ecx, byte [esi + eax]
mov esi, dword [esp + 0x48]
imul edx, ecx
movzx ecx, byte [edi + eax]
mov edi, dword [esp + 0x3c]
add ebx, edx
movzx edx, byte [esi + eax]
imul ecx, edx
movzx edx, byte [edi + eax]
mov edi, dword [esp + 0x4c]
movzx esi, byte [edi + eax]
imul edx, esi
add edx, ecx
mov ecx, dword [esp + 0x54]
add ebx, edx
sar ebx, 4
movsx edx, word [ecx + eax*2]
lea ecx, [ebx + edx + 8]
mov edx, ecx
sar edx, 4
test edx, 0xffffff00
je 0x833496
mov edx, ecx
sar edx, 0x1f
not edx
mov ebx, dword [esp + 0x30]
mov byte [ebx + eax], dl
add eax, 1
cmp dword [esp + 0x50], eax
jg 0x833424
add dword [esp + 0x64], 1
mov edi, ebx
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x64]
add edi, dword [esp + 0x5c]
add ebp, dword [esp + 0x74]
add dword [esp + 0x34], esi
cmp dword [esp + 0x80], eax
jg 0x8333d4
jmp 0x832bf9
mov eax, dword [esp + 0x6c]
movzx ecx, byte [esp + 0xd0]
mov edi, dword [esp + 0xdc]
mov eax, dword [eax + 0x20b888]
shl edi, cl
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x38]
imul eax, edi
add eax, dword [esp + 0xa8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
movzx ebp, byte [eax + 8]
movzx ebx, byte [eax + 0x12]
mov ecx, ebp
and ecx, 1
mov dword [esp + 0x34], ecx
je 0x83352d
test bl, 1
jne 0x833ad8
movsx ecx, word [eax + 0xc]
xor ebx, ebp
movsx edx, word [eax + 2]
movsx esi, word [eax + 0xa]
sub edx, ecx
movsx ecx, word [eax]
sub ecx, esi
movzx esi, byte [eax + 0xe]
or edx, ecx
movzx ecx, byte [eax + 4]
sub ecx, esi
or edx, ecx
mov ecx, ebx
and ecx, 1
or edx, ecx
sete dl
movzx edx, dl
test edx, edx
je 0x8336b9
mov ebx, dword [esp + 0x34]
lea edx, [edi + edi*4]
lea edx, [eax + edx*2]
test ebx, ebx
jne 0x833a9a
movzx ebx, byte [edx + 8]
mov byte [esp + 0x3c], bl
movsx ebx, word [edx + 2]
movsx ecx, word [eax + 2]
movsx esi, word [edx]
movzx edx, byte [edx + 4]
sub ecx, ebx
movsx ebx, word [eax]
sub ebx, esi
or ecx, ebx
movzx ebx, byte [eax + 4]
sub ebx, edx
movzx edx, byte [esp + 0x3c]
or ecx, ebx
xor edx, ebp
and edx, 1
or ecx, edx
sete dl
movzx edx, dl
test edx, edx
je 0x8336b9
mov ecx, dword [esp + 0x34]
lea edx, [edi + edi*4 + 5]
lea edx, [eax + edx*2]
movzx edi, byte [edx + 8]
test ecx, ecx
je 0x833b05
test edi, 1
je 0x833b05
movzx ebx, byte [edx + 6]
movzx ecx, byte [eax + 6]
movzx esi, byte [edx + 5]
movzx edx, byte [edx + 7]
sub ecx, ebx
movzx ebx, byte [eax + 5]
movzx eax, byte [eax + 7]
sub ebx, esi
sub eax, edx
or ecx, ebx
or ecx, eax
sete al
movzx eax, al
jmp 0x833b34
mov eax, dword [esp + 0x8c]
add eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00927c40
movzx edx, byte [esi + 8]
mov eax, dword [esp + 0x8c]
mov ecx, edx
mov byte [esp + 0x40], dl
mov edx, dword [esp + 0x4c]
and ecx, 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x8c], edx
jmp 0x832f09
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x2ff0]
mov edx, dword [eax + 0x2fe8]
mov ebx, dword [eax + 0x2fec]
xor eax, eax
mov dword [esp + 0x3c], 0
shl edx, cl
shl ebx, cl
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], ebx
shl eax, 3
lea edx, [eax + 0xfc74e4]
jmp 0x8337ab
shr eax, 0x1f
test al, al
jne 0x833848
xor eax, eax
cmp ebx, dword [esp + 0x48]
jge 0x833798
mov ebx, dword [esp + 0x38]
lea eax, [esi + esi*4]
lea eax, [ebx + eax*2]
test byte [eax + 8], 1
je 0x83387b
movzx esi, byte [eax + 5]
movzx ebx, byte [ecx + 5]
sub ebx, esi
mov esi, ebx
sar esi, 0x1f
xor ebx, esi
sub ebx, esi
movzx esi, byte [eax + 6]
add ebx, ebx
movzx eax, byte [eax + 7]
or ebx, 1
bsr edi, ebx
movzx ebx, byte [ecx + 6]
movzx ecx, byte [ecx + 7]
xor edi, 0x1f
sub ebx, esi
sub ecx, eax
mov esi, ebx
mov eax, ecx
sar esi, 0x1f
sar eax, 0x1f
xor ebx, esi
xor ecx, eax
sub ebx, esi
sub ecx, eax
add ebx, ebx
lea eax, [ecx + ecx]
or ebx, 1
or eax, 1
bsr ebx, ebx
bsr eax, eax
mov ecx, 0x1f
xor eax, 0x1f
sub ecx, edi
xor ebx, 0x1f
mov esi, 0x1f
mov edi, 0x1f
sub esi, ebx
sub edi, eax
add ecx, esi
mov eax, edi
add eax, ecx
lea eax, [eax + eax + 3]
add edx, 8
add dword [esp + 0x3c], eax
cmp edx, 0xfc752c
je 0x83385d
mov ebx, dword [esp + 0xac]
mov ecx, 0xfc74c0
mov esi, dword [esp + 0x34]
add ebx, dword [edx]
mov eax, dword [esp + 0xa8]
add eax, dword [edx - 4]
imul esi, ebx
add esi, eax
test eax, eax
je 0x8337db
mov edi, dword [esp + 0x38]
lea ecx, [esi + esi*4 - 5]
lea ecx, [edi + ecx*2]
test ebx, ebx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x40], 0xfc74c0
je 0x83383e
mov ebp, esi
sub ebp, dword [esp + 0x34]
test eax, eax
lea edi, [ebp + ebp*4]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x38]
lea ebp, [ebp + edi*2]
mov dword [esp + 0x40], ebp
je 0x834013
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x38]
lea edi, [edi + edi*4 - 5]
lea ebp, [ebp + edi*2]
mov dword [esp + 0x60], ebp
lea ebp, [eax + 1]
cmp ebp, dword [esp + 0x34]
jge 0x83383e
mov ebp, dword [esp + 0x4c]
lea edi, [ebp + ebp*4 + 5]
mov ebp, dword [esp + 0x38]
lea edi, [ebp + edi*2]
mov dword [esp + 0x60], edi
cmp eax, dword [esp + 0x34]
jl 0x8336f3
add edx, 8
xor eax, eax
add dword [esp + 0x3c], eax
cmp edx, 0xfc752c
jne 0x8337ab
mov eax, dword [esp + 0xcc]
imul eax, dword [esp + 0x3c]
add eax, dword [esp + 0xb4]
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
movzx ebp, byte [eax + 4]
movzx ebx, word [ecx]
mov edi, dword [esp + 0x40]
movzx esi, word [ecx + 2]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x40]
mov word [esp + 0x50], bx
mov ebx, dword [esp + 0x60]
movzx edi, word [edi]
mov word [esp + 0x54], si
movzx ebp, word [ebp + 2]
movzx esi, word [ebx]
mov word [esp + 0x4c], di
movzx edi, word [ebx + 2]
mov word [esp + 0x58], bp
mov ebp, dword [esp + 0x6c]
mov word [esp + 0x5c], di
cmp dword [ebp + 0x2f68], 1
je 0x833d9e
mov edi, dword [esp + 0x44]
movzx ebx, byte [ebx + 4]
movzx ecx, byte [ecx + 4]
shl edi, 5
add edi, 0x166b7a0
mov ebp, dword [edi + ebx*4]
movsx ebx, si
mov esi, dword [esp + 0x40]
mov ecx, dword [edi + ecx*4]
imul ebx, ebp
movzx esi, byte [esi + 4]
sub ebx, 0xffffff80
mov esi, dword [edi + esi*4]
sar ebx, 8
mov dword [esp + 0x40], esi
movsx esi, word [esp + 0x4c]
mov dword [esp + 0x4c], ecx
movsx ecx, word [esp + 0x50]
imul esi, dword [esp + 0x40]
imul ecx, dword [esp + 0x4c]
sub esi, 0xffffff80
sub ecx, 0xffffff80
sar esi, 8
sar ecx, 8
cmp esi, ecx
jl 0x833a08
cmp ebx, esi
jge 0x83393b
cmp ebx, ecx
mov esi, ecx
cmovge esi, ebx
movsx edi, word [esp + 0x5c]
movsx ecx, word [esp + 0x58]
movsx ebx, word [esp + 0x54]
imul ecx, dword [esp + 0x40]
imul ebx, dword [esp + 0x4c]
imul edi, ebp
sub ecx, 0xffffff80
sub ebx, 0xffffff80
sub edi, 0xffffff80
sar ecx, 8
sar ebx, 8
sar edi, 8
cmp ecx, ebx
jge 0x833ce1
cmp edi, ecx
jle 0x83397c
cmp edi, ebx
mov ecx, ebx
cmovle ecx, edi
movsx ebx, word [eax]
mov edi, 0x20
mov ebp, 0x1f
movsx eax, word [eax + 2]
sub esi, ebx
sub ecx, eax
mov ebx, esi
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
sar ebx, 0x1f
sub ecx, eax
mov eax, dword [esp + 0x44]
xor esi, ebx
add ecx, ecx
sub esi, ebx
or ecx, 1
lea ebx, [esi + esi]
bsr ecx, ecx
or ebx, 1
add eax, eax
bsr ebx, ebx
or eax, 1
xor ebx, 0x1f
xor ecx, 0x1f
bsr eax, eax
sub edi, ebx
xor eax, 0x1f
sub ebp, ecx
mov ebx, 0x1f
mov ecx, ebp
sub ebx, eax
add ecx, edi
mov eax, ebx
add eax, ecx
add eax, eax
jmp 0x833798
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x8c], ecx
mov eax, ecx
mov ebx, ecx
jmp 0x833390
jmp dword [edx*4 + 0xfc71e0]
cmp ebx, esi
jle 0x83393b
cmp ebx, ecx
mov esi, ecx
cmovle esi, ebx
jmp 0x83393b
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
movzx ecx, byte [eax + 6]
movzx eax, byte [edx + 6]
movzx edx, byte [edx + 5]
sub ecx, eax
movzx eax, byte [esi + 5]
sub eax, edx
or ecx, eax
movzx eax, byte [esi + 7]
mov esi, dword [esp + 0x38]
movzx edx, byte [esi + 7]
sub eax, edx
or ecx, eax
sete al
movzx eax, al
jmp 0x8330b3
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx + 6]
mov edx, dword [esp + 0x34]
movzx eax, byte [edx + 6]
mov edx, dword [esp + 0x3c]
sub ecx, eax
movzx eax, byte [edx + 5]
mov edx, dword [esp + 0x34]
movzx edx, byte [edx + 5]
sub eax, edx
mov edx, dword [esp + 0x3c]
or ecx, eax
movzx eax, byte [edx + 7]
mov edx, dword [esp + 0x34]
movzx edx, byte [edx + 7]
sub eax, edx
or ecx, eax
sete al
movzx eax, al
jmp 0x832fdd
movzx ecx, byte [edx + 8]
mov byte [esp + 0x3c], cl
and ecx, 1
je 0x83357f
movzx ebx, byte [edx + 6]
movzx ecx, byte [eax + 6]
movzx esi, byte [edx + 5]
movzx edx, byte [edx + 7]
sub ecx, ebx
movzx ebx, byte [eax + 5]
sub ebx, esi
or ecx, ebx
movzx ebx, byte [eax + 7]
sub ebx, edx
or ecx, ebx
sete dl
movzx edx, dl
jmp 0x8335b1
movzx ecx, byte [eax + 0x10]
movzx edx, byte [eax + 6]
movzx ebx, byte [eax + 0xf]
sub edx, ecx
movzx ecx, byte [eax + 5]
sub ecx, ebx
movzx ebx, byte [eax + 0x11]
or edx, ecx
movzx ecx, byte [eax + 7]
sub ecx, ebx
or edx, ecx
sete dl
movzx edx, dl
jmp 0x83355d
movsx ebx, word [edx + 2]
movsx ecx, word [eax + 2]
movsx esi, word [edx]
movzx edx, byte [edx + 4]
sub ecx, ebx
movsx ebx, word [eax]
movzx eax, byte [eax + 4]
sub ebx, esi
sub eax, edx
or ecx, ebx
or ecx, eax
mov eax, edi
xor eax, ebp
and eax, 1
or ecx, eax
sete al
movzx eax, al
test eax, eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x2ff0]
je 0x8336c3
mov edi, dword [eax + 0x2fe8]
mov edx, dword [eax + 0x2fec]
mov eax, 0xfc74c0
mov ebp, dword [esp + 0xa8]
shl edi, cl
shl edx, cl
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x58], edx
imul ecx, edi
add ecx, dword [esp + 0xa8]
test ebp, ebp
je 0x833b86
mov ebx, dword [esp + 0x38]
lea eax, [ecx + ecx*4 - 5]
lea eax, [ebx + eax*2]
mov esi, dword [esp + 0xac]
mov ebx, 0xfc74c0
mov dword [esp + 0x54], eax
test esi, esi
je 0x833be1
mov edx, dword [esp + 0xa8]
mov esi, ecx
mov ebp, dword [esp + 0x38]
sub esi, edi
lea ebx, [esi + esi*4]
test edx, edx
lea ebx, [ebp + ebx*2]
je 0x833fee
lea edx, [esi + esi*4 - 5]
lea ebp, [ebp + edx*2]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0xa8]
add ebp, 2
cmp edi, ebp
jle 0x833be1
lea edx, [esi + esi*4 + 0xa]
mov esi, dword [esp + 0x38]
lea edx, [esi + edx*2]
mov dword [esp + 0x54], edx
cmp dword [esp + 0xa8], edi
jge 0x833e22
mov esi, dword [esp + 0xa8]
shr esi, 0x1f
mov edx, esi
test dl, dl
jne 0x833e22
mov esi, dword [esp + 0x58]
cmp dword [esp + 0xac], esi
mov dword [esp + 0x3c], 0
jge 0x833ca9
mov ebp, dword [esp + 0x38]
lea ecx, [ecx + ecx*4]
lea esi, [ebp + ecx*2]
test byte [esi + 8], 1
je 0x833e2f
movzx ecx, byte [esi + 5]
movzx edx, byte [eax + 5]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
movzx ecx, byte [esi + 6]
add edx, edx
or edx, 1
bsr ebx, edx
movzx edx, byte [eax + 6]
movzx eax, byte [eax + 7]
xor ebx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add edx, edx
or edx, 1
bsr ecx, edx
movzx edx, byte [esi + 7]
xor ecx, 0x1f
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, 0x1f
add eax, eax
mov ebp, edx
or eax, 1
mov esi, edx
bsr eax, eax
sub ebp, ecx
xor eax, 0x1f
sub esi, ebx
mov ecx, ebp
sub edx, eax
add ecx, esi
mov eax, edx
add eax, ecx
lea eax, [eax + eax + 3]
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x58]
mov eax, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], ebp
jmp 0x8336e5
cmp ebx, esi
jge 0x833cca
cmp ebx, ecx
mov esi, ecx
cmovge esi, ebx
movsx ecx, word [esp + 0x58]
movsx ebx, word [esp + 0x54]
movsx edi, word [esp + 0x5c]
cmp ecx, ebx
jl 0x833971
cmp edi, ecx
jge 0x83397c
cmp edi, ebx
mov ecx, ebx
cmovge ecx, edi
jmp 0x83397c
mov eax, dword [esp + 0x8c]
add eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00927c40
movzx edx, byte [esi + 8]
mov eax, dword [esp + 0x8c]
mov ecx, edx
mov byte [esp + 0x40], dl
mov edx, dword [esp + 0x4c]
and ecx, 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], edx
jmp 0x832ff3
movsx ebx, si
movsx ecx, word [esp + 0x50]
movsx esi, word [esp + 0x4c]
cmp esi, ecx
jge 0x833cbf
cmp ebx, esi
jle 0x833cca
cmp ebx, ecx
mov esi, ecx
cmovle esi, ebx
jmp 0x833cca
sar ecx, 7
mov dword [esp + 0xcc], ecx
jmp 0x8329a3
add eax, eax
jmp case.0x833a01.0
lea eax, [eax + eax*2]
sar eax, 8
mov dword [esp + 0xcc], eax
jmp 0x8329a3
mov dword [esp + 0xcc], 1
jmp 0x8329a3
shl eax, 2
sar eax, 7
mov dword [esp + 0xcc], eax
jmp 0x8329a3
add eax, eax
sar eax, 7
mov dword [esp + 0xcc], eax
jmp 0x8329a3
mov dword [esp + 0x3c], 0
jmp 0x833ca9
movzx edx, byte [esi + 4]
movzx ecx, word [eax]
movzx ebp, word [eax + 2]
mov dword [esp + 0x3c], edx
movzx edx, word [ebx]
mov word [esp + 0x40], cx
movzx ecx, word [ebx + 2]
mov word [esp + 0x44], bp
mov ebp, dword [esp + 0x54]
mov word [esp + 0x48], dx
mov word [esp + 0x4c], cx
movzx edx, word [ebp + 2]
movzx ecx, word [ebp]
mov ebp, dword [esp + 0x6c]
mov word [esp + 0x50], dx
cmp dword [ebp + 0x2f68], 1
je 0x833fa7
mov edx, dword [esp + 0x54]
movsx ecx, cx
mov ebp, dword [esp + 0x3c]
movzx eax, byte [eax + 4]
movzx ebx, byte [ebx + 4]
movzx edx, byte [edx + 4]
shl ebp, 5
add ebp, 0x166b7a0
mov dword [esp + 0x34], ebp
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x34]
imul ecx, ebp
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x34]
mov ebx, dword [edx + ebx*4]
movsx edx, word [esp + 0x48]
sub ecx, 0xffffff80
mov ebp, dword [ebp + eax*4]
sar ecx, 8
movsx eax, word [esp + 0x40]
imul edx, ebx
mov dword [esp + 0x34], ebp
imul eax, ebp
sub edx, 0xffffff80
sar edx, 8
sub eax, 0xffffff80
sar eax, 8
cmp edx, eax
jge 0x833f93
cmp ecx, edx
jle 0x833ef2
cmp ecx, eax
mov edx, eax
cmovle edx, ecx
movsx eax, word [esp + 0x4c]
movsx ecx, word [esp + 0x50]
imul ecx, dword [esp + 0x54]
imul eax, ebx
movsx ebx, word [esp + 0x44]
imul ebx, dword [esp + 0x34]
sub ecx, 0xffffff80
sar ecx, 8
sub eax, 0xffffff80
sub ebx, 0xffffff80
sar eax, 8
sar ebx, 8
cmp eax, ebx
jge 0x833fda
cmp ecx, eax
jle 0x833f33
cmp ecx, ebx
mov eax, ebx
cmovle eax, ecx
movsx ecx, word [esi]
mov ebx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add edx, edx
or edx, 1
bsr ecx, edx
movsx edx, word [esi + 2]
mov esi, ebx
xor ecx, 0x1f
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x3c]
add eax, eax
or eax, 1
bsr eax, eax
add edx, edx
xor eax, 0x1f
or edx, 1
sub esi, eax
bsr edx, edx
mov eax, esi
xor edx, 0x1f
sub eax, ecx
sub ebx, edx
lea eax, [eax + ebx + 0x20]
add eax, eax
mov dword [esp + 0x3c], eax
jmp 0x833ca9
cmp ecx, edx
jge 0x833ef2
cmp ecx, eax
mov edx, eax
cmovge edx, ecx
jmp 0x833ef2
movsx eax, cx
movsx edx, word [esp + 0x48]
movsx ecx, word [esp + 0x40]
cmp edx, ecx
jge 0x83401c
cmp eax, edx
jle 0x833fc3
cmp eax, ecx
mov edx, ecx
cmovle edx, eax
movsx eax, word [esp + 0x4c]
movsx ebx, word [esp + 0x44]
movsx ecx, word [esp + 0x50]
cmp eax, ebx
jl 0x833f28
cmp ecx, eax
jge 0x833f33
cmp ecx, ebx
mov eax, ebx
cmovge eax, ecx
jmp 0x833f33
mov dword [esp + 0x54], eax
jmp 0x833bc4
mov dword [esp + 8], 0x327
mov dword [esp + 4], str.libavcodec_snowenc.c
mov dword [esp], str.block_w_8__block_w16
call sub.msvcrt.dll__assert
mov dword [esp + 0x60], ecx
jmp 0x833821
cmp eax, edx
jge 0x833fc3
cmp eax, ecx
mov edx, ecx
cmovge edx, eax
jmp 0x833fc3