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

Disassembly:
push ebp
push edi
push esi
push ebx
push eax
mov eax, 0x2e68
call fcn.01087f10
sub esp, eax
mov eax, dword [esp + 0x2e68]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x70], 0x11c4ce0
mov ebx, dword [eax + 0x21c]
mov ebp, eax
mov ecx, dword [eax + 0x2ff0]
mov esi, dword [eax + 0x2fe8]
mov dword [esp + 0xb4], ebx
mov ebx, dword [eax + 0x218]
mov eax, dword [eax + 0x2fec]
shl esi, cl
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x2e80]
shl eax, cl
sub ecx, edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2e80]
mov dword [esp + 0x48], ecx
add ebx, 1
add edx, 1
imul eax, esi
add eax, dword [esp + 0x84]
shl eax, cl
movzx ecx, byte [esp + 0x48]
mov dword [esp + 0x44], eax
shl edx, cl
shl ebx, cl
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x8546d8
mov ecx, dword [ebp + 0x20b888]
lea eax, [eax + eax*4 - 5]
add eax, eax
add eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2e80]
mov dword [esp + 0x7c], 0x11c4ce0
test eax, eax
je 0x854702
mov eax, dword [esp + 0x44]
mov ecx, dword [ebp + 0x20b888]
sub eax, esi
lea eax, [eax + eax*4]
add eax, eax
add eax, ecx
mov dword [esp + 0x7c], eax
cmp esi, edx
mov eax, 0x11c4ce0
jle 0x85471c
mov ecx, dword [esp + 0x44]
mov edi, dword [ebp + 0x20b888]
lea eax, [ecx + ecx*4 + 5]
lea eax, [edi + eax*2]
cmp dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], 0x11c4ce0
jle 0x854741
mov ecx, dword [esp + 0x44]
mov ebx, dword [ebp + 0x20b888]
add ecx, esi
lea ecx, [ecx + ecx*4]
add ecx, ecx
add ecx, ebx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x2e80]
test ecx, ecx
setne bl
je 0x85475e
mov edi, dword [esp + 0x84]
test edi, edi
jne 0x854a09
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x60], ecx
cmp edx, esi
jge 0x854772
test bl, bl
jne 0x854a28
mov edx, dword [esp + 0x60]
mov dword [esp + 0x8c], edx
mov ebx, dword [esp + 0x70]
mov edx, dword [ebp + 0x1040]
movzx ebx, byte [ebx + 5]
mov dword [esp + 0x68], edx
mov edx, dword [ebp + 0x1048]
mov byte [esp + 0x40], bl
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x80], edx
mov edx, dword [ebp + 4]
movzx ebx, byte [ebx + 6]
mov edx, dword [edx + 0xc]
mov byte [esp + 0x50], bl
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x6c], edx
movzx ebx, byte [ebx + 7]
mov byte [esp + 0x54], bl
mov ebx, dword [ebp + 0x1170]
mov dword [esp + 0x9c], ebx
mov ebx, dword [ebp + 0x1174]
mov dword [esp + 0x98], ebx
mov ebx, dword [ebp + 0x1044]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x70]
movzx edx, byte [ebx + 4]
mov ebx, dword [esp + 0x7c]
add edx, edx
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0xa0], edx
movzx edx, byte [ebx + 4]
mov ebx, dword [esp + 0x70]
add edx, edx
movsx ebx, word [ebx]
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0xb0], edx
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x7c]
movsx ebx, word [ebx]
mov dword [esp + 0x5c], ebx
mov edx, dword [esp + 0x64]
sub edx, ebx
mov ebx, dword [esp + 0x70]
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
movsx ecx, word [ebx + 2]
add edx, edx
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x7c]
movsx ebx, word [edx + 2]
mov edx, ecx
sub edx, ebx
mov edi, edx
sar edi, 0x1f
xor edx, edi
sub edx, edi
add edx, edx
or edx, 1
bsr edx, edx
xor edx, 0x1f
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x70]
movzx edx, byte [edx + 9]
mov byte [esp + 0xa4], dl
mov edx, dword [esp + 0x7c]
movzx edx, byte [edx + 9]
mov byte [esp + 0xac], dl
mov edx, dword [esp + 0x60]
movzx edx, byte [edx + 9]
mov byte [esp + 0xba], dl
mov edx, dword [esp + 0x8c]
movzx edx, byte [edx + 9]
mov byte [esp + 0xbb], dl
mov edx, dword [ebp + 0x2f40]
test edx, edx
jne 0x855e91
mov edx, dword [esp + 0x64]
mov dword [esp + 0x2e10], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x2e08], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x2e04], edx
movsx edx, word [ebx]
mov dword [esp + 0x2e0c], ecx
mov dword [esp + 0x2e14], edx
movsx edx, word [ebx + 2]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x2e18], edx
lea edx, [ebx + ebx*4]
mov ebx, dword [ebp + 0x20b888]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x9c]
movzx ecx, word [edx]
cmp dword [ebp + 0x20e9c0], ebx
mov word [esp + 0x2e4c], cx
movzx edx, word [edx + 2]
mov word [esp + 0x2e4e], dx
movzx edx, word [eax]
mov word [esp + 0x2e50], dx
mov edx, dword [esp + 0x4c]
movzx eax, word [eax + 2]
mov word [esp + 0x2e52], ax
movzx eax, word [edx]
mov word [esp + 0x2e54], ax
movzx eax, word [edx + 2]
mov dword [ebp + 0x20c92c], 2
mov dword [ebp + 0x20e9f8], 0
mov dword [ebp + 0x20e9f4], 0
mov word [esp + 0x2e56], ax
mov dword [ebp + 0x20e89c], 0
je 0x8549b9
mov dword [esp + 8], 0x16e
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.c___stride__stride
call fcn.010891c0
mov ebx, dword [esp + 0x98]
cmp dword [ebp + 0x20e9c4], ebx
je 0x8549e4
mov dword [esp + 8], 0x16f
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.c__uvstride__uvstride
call fcn.010891c0
mov eax, dword [ebp + 0x20e898]
mov ebx, dword [ebp + 0x2fd0]
mov ecx, dword [ebp + 0x2fcc]
movzx edx, byte [eax + 0x1b0]
cmp edx, 0xe
jbe switch.0x00854a5f
mov edx, ecx
sar edx, 7
jmp 0x854a85
mov ecx, dword [esp + 0x44]
sub ecx, esi
lea ecx, [ecx + ecx*4 - 5]
add ecx, ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 0x20b888]
add dword [esp + 0x60], ecx
jmp 0x854766
test byte [esp + 0x84], 1
jne 0x854a66
mov ebx, dword [esp + 0x44]
mov edx, 1
movzx ecx, byte [esp + 0x48]
sub ebx, esi
shl edx, cl
add edx, ebx
mov ebx, dword [ebp + 0x20b888]
lea edx, [edx + edx*4]
add edx, edx
add edx, ebx
mov dword [esp + 0x8c], edx
jmp 0x85477d
jmp dword [edx*4 + 0x11c4ae4]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
test ecx, ecx
mov dword [esp + 0x8c], ebx
jne 0x85477d
jmp 0x854a32
lea edx, [ecx + ecx]
sar edx, 7
mov dword [ebp + 0x20e908], edx
movzx edx, byte [eax + 0x1b4]
cmp edx, 0xe
jbe switch.0x00855b17
mov edx, ecx
sar edx, 7
movzx eax, byte [eax + 0x1b8]
mov dword [ebp + 0x20e90c], edx
cmp eax, 0xe
jbe switch.0x00855b05
mov edx, ecx
sar edx, 7
mov edi, 4
mov ebx, 1
mov ecx, edi
xor eax, eax
sub ecx, dword [esp + 0x58]
mov dword [ebp + 0x20e910], edx
mov edx, dword [esp + 0x2e80]
mov dword [ebp + 0x20e668], 1
shl ebx, cl
mov ecx, edi
test byte [esp + 0x6c], 0x10
not edx
setne al
add eax, 1
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x20e9e4]
imul edx, ebx
add eax, 0x1801
mov dword [ebp + 0x20e9e8], eax
mov eax, dword [esp + 0x84]
neg eax
imul eax, ebx
sub eax, 0xd
mov dword [esp + 0x60], eax
mov dword [ebp + 0x20e928], eax
mov eax, dword [esp + 0x2e80]
neg eax
imul eax, ebx
sub eax, 0xd
mov dword [ebp + 0x20e930], eax
mov eax, dword [ebp + 0x2ff0]
sub ecx, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x84]
shl esi, cl
not eax
imul eax, ebx
lea esi, [eax + esi + 0xd]
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0x20e92c], esi
shl eax, cl
movzx ecx, byte [esp + 0x5c]
lea edi, [edx + eax + 0xd]
mov edx, dword [esp + 0x2e04]
mov dword [ebp + 0x20e934], edi
shl esi, cl
cmp edx, esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x64], esi
jle 0x854b99
movzx ecx, byte [esp + 0x5c]
mov dword [esp + 0x2e04], esi
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x2e08]
shl edi, cl
cmp esi, edi
mov dword [esp + 0x4c], esi
jle 0x854bb5
mov dword [esp + 0x2e08], edi
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x2e0c]
cmp dword [esp + 0x64], eax
jge 0x854bcf
mov esi, dword [esp + 0x64]
mov dword [esp + 0x2e0c], esi
mov eax, esi
mov edx, dword [esp + 0x2e10]
cmp edi, edx
jge 0x854be3
mov dword [esp + 0x2e10], edi
mov edx, edi
mov esi, dword [esp + 0x2e14]
movzx ecx, byte [esp + 0x5c]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x60]
shl esi, cl
cmp dword [esp + 0x3c], esi
mov dword [esp + 0x60], esi
jge 0x854c0e
mov dword [esp + 0x2e14], esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0x64], esi
jge 0x854c27
mov esi, dword [esp + 0x64]
mov dword [esp + 0x2e14], esi
mov dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x2e18]
cmp edi, ecx
jge 0x854c3b
mov dword [esp + 0x2e18], edi
mov ecx, edi
cmp dword [esp + 0x48], eax
jle 0x855ae7
cmp eax, dword [esp + 0x3c]
jge 0x854c58
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x3c], eax
cmovle eax, dword [esp + 0x3c]
cmp dword [esp + 0x4c], edx
mov dword [esp + 0x2e1c], eax
jle 0x855acf
cmp edx, ecx
jge 0x854c78
mov edx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x4c]
cmovle edx, ecx
mov ecx, dword [esp + 0x2e80]
mov dword [esp + 0x2e20], edx
test ecx, ecx
jne 0x855abe
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [ebp + 0x20e938], eax
mov dword [ebp + 0x20e93c], edx
mov eax, dword [esp + 0x2e80]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x74]
mov edi, dword [ebp + 0x2f68]
imul eax, ebx
add eax, dword [esp + 0x68]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2e80]
imul eax, dword [esp + 0x98]
add eax, dword [esp + 0x84]
imul eax, ebx
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
add ecx, eax
add eax, dword [esp + 0x80]
test edi, edi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x80], eax
jle 0x8560b2
mov esi, dword [esp + 0x2e80]
lea edx, [ebp + 0x20c8b0]
xor edi, edi
mov eax, dword [esp + 0x84]
movzx ecx, byte [esp + 0x5c]
mov dword [esp + 0x6c], 0x10000
imul esi, ebx
imul eax, ebx
mov dword [esp + 0x48], ebx
mov ebx, ebp
sar dword [esp + 0x6c], cl
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], 0x1f
mov dword [esp + 0x88], 0
shl esi, 2
mov dword [esp + 0x5c], esi
mov esi, ebp
mov dword [esp + 0x94], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x68], 0x7fffffff
mov dword [esp + 0x4c], edx
jmp 0x854ee2
cmp dword [ebp + 0x20e92c], edx
jl 0x854ff3
mov edx, dword [esp + 0x2e5c]
cmp dword [ebp + 0x20e930], edx
jg 0x85502a
cmp dword [ebp + 0x20e934], edx
jl 0x855061
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x2e58]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x4c]
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 [ebp + 0x20e9ec]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x2e5c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2e58]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00989750
mov edx, 0x1f
sub edx, dword [esp + 0x3c]
add edx, edx
imul edx, dword [ebp + 0x20e908]
add eax, edx
mov edx, dword [ebx + 0x2f6c]
test edx, edx
je 0x854e90
mov ecx, dword [esp + 0x2e58]
add edx, dword [esp + 0x5c]
mov word [edx], cx
mov ecx, dword [esp + 0x2e5c]
mov word [edx + 2], cx
mov ecx, dword [esp + 0x5c]
mov edx, dword [ebx + 0x2f8c]
mov dword [edx + ecx], eax
cmp eax, dword [esp + 0x68]
jge 0x854eba
mov edx, dword [esp + 0x2e58]
mov ecx, dword [esp + 0x2e5c]
mov dword [esp + 0x88], edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x94], ecx
add edi, 1
add esi, 0x120
add ebx, 4
cmp dword [ebp + 0x2f68], edi
jle 0x85508a
lea eax, [edi + edi]
or eax, 1
bsr eax, eax
xor eax, 0x1f
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x60]
imul edx, dword [ebp + 0x20e9c0]
add edx, dword [esp + 0x64]
mov dword [ebp + 0x20e940], ecx
mov eax, dword [esp + 0x60]
add edx, dword [esi + 0x1280]
imul eax, dword [ebp + 0x20e9c4]
add eax, dword [esp + 0x64]
mov dword [ebp + 0x20e980], edx
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x80]
sar eax, 1
mov dword [ebp + 0x20e944], edx
mov edx, dword [esi + 0x1284]
mov dword [ebp + 0x20e948], ecx
lea ecx, [esp + 0x2e4c]
add edx, eax
mov dword [ebp + 0x20e984], edx
mov edx, dword [esp + 0x48]
add eax, dword [esi + 0x1288]
mov dword [ebp + 0x20e988], eax
lea eax, [esp + 0x2dfc]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x58]
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 + 0x6c]
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 + 0x4c]
mov dword [esp], edx
call fcn.00989860
mov edx, dword [esp + 0x2e58]
cmp dword [ebp + 0x20e928], edx
jle 0x854d90
mov dword [esp + 0x30], eax
mov dword [esp + 8], 0x196
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.ref_mx___c__xmin
call fcn.010891c0
mov edx, dword [esp + 0x2e58]
cmp dword [ebp + 0x20e92c], edx
mov eax, dword [esp + 0x30]
jge 0x854d9c
mov dword [esp + 0x30], eax
mov dword [esp + 8], 0x197
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.ref_mx___c__xmax
call fcn.010891c0
mov edx, dword [esp + 0x2e5c]
cmp dword [ebp + 0x20e930], edx
mov eax, dword [esp + 0x30]
jle 0x854daf
mov dword [esp + 0x30], eax
mov dword [esp + 8], 0x198
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.ref_my___c__ymin
call fcn.010891c0
mov edx, dword [esp + 0x2e5c]
cmp dword [ebp + 0x20e934], edx
mov eax, dword [esp + 0x30]
jge 0x854dbb
mov dword [esp + 0x30], eax
mov dword [esp + 8], 0x199
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.ref_my___c__ymax
call fcn.010891c0
mov eax, dword [esp + 0x30]
jmp 0x854dbb
mov eax, dword [ebp + 0x2ff0]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x6c], eax
mov edi, dword [ebp + 0x21c]
mov esi, dword [ebp + 0x218]
movzx edx, byte [esp + 0xac]
movzx ecx, byte [esp + 0xa4]
mov eax, edi
sub eax, esi
add eax, dword [ebp + 0x10]
cmp dword [ebp + 0x14], 0x80000000
adc eax, 0
add ecx, edx
movzx edx, byte [esp + 0xba]
lea ecx, [edx + ecx*2]
movzx edx, byte [esp + 0xbb]
add edx, ecx
mov ecx, esi
mov dword [esp + 0xac], edx
mov edx, dword [ebp + 0xc]
sub ecx, edi
lea esi, [ebp + 8]
mov dword [esp + 0x60], esi
or edx, 1
bsr edx, edx
xor edx, 0x1f
lea eax, [edx + eax*8 - 0x1f]
lea eax, [eax + ecx*8]
mov ecx, 0x87
lea edx, [esp + 0x29c4]
mov dword [esp + 0xa4], eax
mov edi, edx
mov dword [esp + 0x34], edx
lea eax, [esp + 0x21c4]
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0xc4]
lea esi, [ebp + 0x1ec0]
mov edi, edx
mov dword [esp + 0x2bd8], eax
mov dword [esp + 0x2bd4], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x64], esi
mov cx, 0x420
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x58], eax
je 0x855177
mov ecx, dword [esp + 0xac]
lea eax, [esp + 0x29c4]
lea edx, [esp + ecx + 0xc8]
mov ecx, 1
call fcn.00851890
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
movzx edx, byte [esi + 8]
lea esi, [esp + 0xc4]
movzx eax, byte [ecx + 8]
xor ecx, ecx
lea edx, [edx + eax + 1]
add edx, esi
lea eax, [esp + 0x29c4]
call fcn.00851890
mov eax, dword [ebp + 0x2f68]
cmp eax, 1
jle 0x855201
mov eax, 0x1f
mov esi, dword [esp + 0x88]
mov edx, eax
sub eax, dword [esp + 0xb0]
sub edx, dword [esp + 0xa0]
lea edx, [edx + eax + 0x24]
shl edx, 5
lea eax, [esp + 0xc4]
add edx, eax
test esi, esi
je 0x855f56
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0x29c4]
mov dword [esp], 0
call fcn.00853e30
mov eax, dword [ebp + 0x2f68]
mov edx, dword [esp + 0x70]
cmp eax, 1
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
movzx edx, word [edx]
movzx ecx, word [ecx + 2]
movzx esi, word [esi]
mov word [esp + 0x4c], dx
mov edx, dword [esp + 0x7c]
mov word [esp + 0x5c], cx
mov ecx, dword [esp + 0x8c]
mov word [esp + 0x48], si
movzx edx, word [edx + 2]
movzx esi, word [ecx + 2]
mov word [esp + 0x6c], dx
movzx edx, word [ecx]
mov word [esp + 0xa0], si
je 0x855e43
mov esi, ecx
mov ecx, dword [esp + 0x88]
movsx edx, dx
movzx eax, byte [esi + 4]
shl ecx, 5
add ecx, 0x1991e00
mov edi, dword [ecx + eax*4]
imul edx, edi
lea esi, [edx + 0x80]
mov edx, dword [esp + 0x7c]
sar esi, 8
movzx eax, byte [edx + 4]
mov edx, dword [esp + 0x70]
mov eax, dword [ecx + eax*4]
movzx edx, byte [edx + 4]
mov dword [esp + 0x3c], eax
movsx eax, word [esp + 0x48]
mov ecx, dword [ecx + edx*4]
movsx edx, word [esp + 0x4c]
imul eax, dword [esp + 0x3c]
mov dword [esp + 0x48], ecx
imul edx, ecx
sub eax, 0xffffff80
sar eax, 8
sub edx, 0xffffff80
sar edx, 8
cmp eax, edx
jge 0x855b3d
cmp esi, eax
jg 0x855f7e
movsx ecx, word [esp + 0xa0]
movsx esi, word [esp + 0x6c]
movsx edx, word [esp + 0x5c]
imul esi, dword [esp + 0x3c]
imul edx, dword [esp + 0x48]
imul ecx, edi
sub esi, 0xffffff80
sub edx, 0xffffff80
sub ecx, 0xffffff80
sar esi, 8
sar edx, 8
sar ecx, 8
cmp esi, edx
jge 0x855b29
cmp ecx, esi
jg 0x855f72
cmp dword [esp + 0x88], 1
lea ecx, [esp + 0xc4]
sbb edx, edx
not edx
and edx, 0x10
sub edx, dword [esp + 0x90]
add edx, 0x23
shl edx, 5
add edx, ecx
mov ecx, dword [esp + 0x44]
sub ecx, eax
je 0x855aa8
lea eax, [esp + 0x29c4]
mov dword [esp], 1
call fcn.00853e30
cmp dword [esp + 0x88], 1
mov ecx, dword [esp + 0x94]
lea edx, [esp + 0xc4]
sbb eax, eax
not eax
and eax, 0x10
sub eax, dword [esp + 0xa8]
add eax, 0x23
shl eax, 5
add edx, eax
sub ecx, esi
je 0x855a92
lea eax, [esp + 0x29c4]
mov dword [esp], 1
call fcn.00853e30
mov eax, dword [esp + 0x2bd4]
mov ecx, ebx
mov esi, dword [esp + 0x2bd8]
mov edx, dword [esp + 0x29cc]
sub esi, eax
mov eax, dword [esp + 0x29c8]
add edx, esi
cmp dword [esp + 0x29d0], 0x80000000
mov dword [esp + 0x6c], esi
adc edx, 0
or eax, 1
bsr eax, eax
xor eax, 0x1f
lea eax, [eax + edx*8 - 0x1f]
sub eax, dword [esp + 0xa4]
imul eax, dword [ebp + 0x2fd0]
imul ecx, ebx
sar eax, 7
add eax, dword [esp + 0x68]
test ebx, ebx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x90], eax
jle 0x85611b
mov esi, dword [esp + 0x78]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x9c]
mov edi, esi
mov dword [esp + 0x3c], esi
mov esi, eax
lea esi, [esi]
xor eax, eax
movzx edx, byte [edi + eax]
add eax, 1
add ecx, edx
cmp eax, ebx
jne 0x855422
add esi, 1
add edi, ebp
cmp esi, ebx
jne 0x855420
mov eax, dword [esp + 0x4c]
xor edi, edi
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], ecx
shr eax, 0x1f
add eax, dword [esp + 0x4c]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x9c]
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 + 0x3c], eax
xor eax, eax
movzx ecx, byte [esi + eax]
add eax, 1
add edx, dword [ecx*4 + 0x14dad40]
cmp eax, ebx
jne 0x855475
add edi, 1
add esi, ebp
cmp edi, ebx
jne 0x855473
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x68]
neg eax
add eax, eax
imul ecx, eax
mov eax, dword [esp + 0x3c]
imul eax, eax
mov esi, dword [esp + 0x4c]
imul eax, dword [esp + 0x4c]
sar ebx, 1
sar esi, 2
add eax, ecx
add eax, edx
test ebx, ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x4c], esi
jle 0x85613c
mov dword [esp + 0x48], ebp
mov esi, dword [esp + 0x74]
xor edi, edi
mov ebp, dword [esp + 0x98]
xor edx, edx
nop
xor eax, eax
movzx ecx, byte [esi + eax]
add eax, 1
add edx, ecx
cmp eax, ebx
jne 0x8554e2
add edi, 1
add esi, ebp
cmp edi, ebx
jne 0x8554e0
mov eax, dword [esp + 0x4c]
xor edi, edi
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x80]
shr eax, 0x1f
add eax, dword [esp + 0x4c]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x98]
sar eax, 1
mov dword [esp + 0x5c], 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, ebx
jne 0x855534
add edi, 1
add esi, ebp
cmp edi, ebx
jne 0x855532
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x5c]
mov ecx, 0x87
mov esi, dword [esp + 0x60]
add eax, edx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x4c]
lea edx, [esp + 0x25c4]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x2be0]
mov dword [esp + 0x98], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1144]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x80], ecx
mov edi, dword [esp + 0x80]
mov ecx, 0x420
mov dword [esp + 0x2df4], edx
mov dword [esp + 0x2df0], edx
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x58]
cmp dword [ebp + 0x2ff0], edx
je 0x8555d2
mov ebx, dword [esp + 0xac]
mov cl, 1
lea edx, [esp + ebx + 0x1148]
call fcn.00851890
mov ebx, dword [esp + 0x70]
lea esi, [esp + 0x1144]
mov ecx, 1
movzx edx, byte [ebx + 8]
mov ebx, dword [esp + 0x7c]
movzx eax, byte [ebx + 8]
lea edx, [edx + eax + 1]
add edx, esi
lea eax, [esp + 0x2be0]
call fcn.00851890
movzx eax, byte [esp + 0x40]
mov ecx, dword [esp + 0x3c]
sub ecx, eax
je 0x855a23
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1164]
mov dword [esp], 1
call fcn.00853e30
movzx eax, byte [esp + 0x50]
mov ecx, dword [esp + 0x48]
sub ecx, eax
je 0x855a4c
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1184]
mov dword [esp], 1
call fcn.00853e30
movzx eax, byte [esp + 0x54]
mov ecx, dword [esp + 0x4c]
sub ecx, eax
je 0x855a75
lea edx, [esp + 0x11a4]
lea eax, [esp + 0x2be0]
mov dword [esp], 1
call fcn.00853e30
mov ebx, dword [esp + 0x2df4]
mov esi, dword [esp + 0x2df0]
mov ecx, dword [esp + 0x2be8]
mov edx, dword [esp + 0x2be4]
mov eax, dword [ebp + 0x2fd0]
sub ebx, esi
add ecx, ebx
cmp dword [esp + 0x2bec], 0x80000000
mov dword [esp + 0x68], ebx
adc ecx, 0
or edx, 1
bsr edx, edx
xor edx, 0x1f
lea edx, [edx + ecx*8 - 0x1f]
sub edx, dword [esp + 0xa4]
imul edx, eax
lea eax, [eax + eax*4]
lea eax, [eax + eax + 0xfe00ff]
sar edx, 7
add edx, dword [esp + 0x78]
cmp edx, eax
mov dword [esp + 0x5c], edx
jg 0x855dfa
mov ebx, dword [esp + 0x5c]
test ebx, ebx
js 0x855e22
cmp dword [esp + 0x3c], 0xff
ja 0x855dd9
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x85573d
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x90]
sar esi, 8
sar ebx, 8
cmp ebx, esi
jl 0x855992
cmp ebx, 0x40
jle 0x855992
mov eax, dword [ebp + 0x20db00]
add dword [ebp + 0x20e9d0], eax
mov edx, dword [esp + 0x58]
cmp dword [ebp + 0x2ff0], edx
je 0x8557ea
mov ebx, dword [esp + 0xac]
xor ecx, ecx
mov eax, dword [esp + 0x60]
lea edx, [ebp + ebx + 0x1ec4]
call fcn.00851890
mov edi, dword [esp + 0x84]
mov eax, ebp
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x2e80]
add edi, edi
add ebx, 1
mov ecx, edi
add esi, esi
mov edx, ebx
mov dword [esp], esi
call fcn.00854620
lea ecx, [edi + 1]
mov edx, ebx
mov dword [esp + 0x78], ecx
mov dword [esp], esi
add esi, 1
mov dword [esp + 0x74], eax
mov eax, ebp
call fcn.00854620
mov ecx, edi
mov edx, ebx
mov dword [esp], esi
add eax, dword [esp + 0x74]
mov dword [esp + 0x74], eax
mov eax, ebp
call fcn.00854620
mov edi, dword [esp + 0x74]
mov edx, ebx
mov ecx, dword [esp + 0x78]
mov dword [esp], esi
add edi, eax
mov eax, ebp
call fcn.00854620
add edi, eax
mov eax, dword [ebp + 0x2fd0]
sar eax, 7
add eax, edi
cmp eax, dword [esp + 0x5c]
jl 0x85608b
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x90], ebx
jg 0x855b51
mov ebx, dword [esp + 0x6c]
lea esi, [esp + 0x21c4]
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov edi, dword [esp + 0x60]
mov ecx, 0x87
mov esi, dword [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x2ff0]
mov dword [esp + 0x4c], 1
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x2e80]
mov ebx, dword [esp + 0xbc]
mov dword [ebp + 0x21c], eax
mov eax, dword [ebp + 0x2fe8]
movzx esi, byte [esp + 0x88]
movzx edi, byte [esp + 0x58]
mov dword [ebp + 0x218], ebx
movzx ebx, word [esp + 0x94]
shl eax, cl
imul edx, eax
sub ecx, dword [esp + 0x58]
add edx, dword [esp + 0x84]
shl dword [esp + 0x4c], cl
shl edx, cl
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jle 0x855935
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
add ecx, ecx
add eax, eax
mov dword [esp + 0x58], eax
lea eax, [edx + edx*4]
add eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], eax
nop
mov eax, ecx
xor edx, edx
mov ecx, esi
mov esi, eax
mov word [esp + 0x5c], bx
lea esi, [esi]
movzx ebx, word [esp + 0x44]
lea eax, [esi + edx]
add edx, 0xa
add eax, dword [ebp + 0x20b888]
cmp edx, dword [esp + 0x3c]
mov word [eax], bx
movzx ebx, word [esp + 0x5c]
mov byte [eax + 4], cl
mov byte [eax + 8], 0
mov word [eax + 2], bx
movzx ebx, byte [esp + 0x40]
mov byte [eax + 5], bl
movzx ebx, byte [esp + 0x50]
mov byte [eax + 6], bl
movzx ebx, byte [esp + 0x54]
mov byte [eax + 7], bl
mov ebx, edi
mov byte [eax + 9], bl
jne 0x8558d0
mov eax, esi
mov esi, ecx
movzx ebx, word [esp + 0x5c]
mov ecx, eax
mov eax, dword [esp + 0x4c]
add dword [esp + 0x48], 1
add ecx, dword [esp + 0x58]
cmp dword [esp + 0x48], eax
jne 0x8558c0
mov edi, dword [esp + 0x64]
lea esi, [esp + 0xc4]
mov eax, 0x1080
test edi, 1
jne 0x8561f7
test edi, 2
jne 0x85621c
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x855975
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x855980
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [esp + 0x90]
add esp, 0x2e6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x20e9d0]
cmp ebx, 0xfe
mov dword [esp + 0x78], eax
jbe 0x855f9e
cmp ebx, 0xfff
mov eax, ebx
ja 0x85615f
shr eax, 4
movzx edx, byte [eax + 0x1256320]
shr dl, 2
movzx edx, dl
mov eax, edx
mov edi, edx
imul eax, edx
cmp ebx, eax
setb al
movzx eax, al
sub edi, eax
cmp esi, 0xfe
jbe 0x856109
cmp esi, 0xfff
mov eax, esi
ja 0x856182
shr eax, 4
movzx edx, byte [eax + 0x1256320]
shr dl, 2
movzx edx, dl
mov eax, edx
imul eax, edx
cmp esi, eax
setb al
movzx eax, al
sub edx, eax
mov eax, dword [esp + 0x78]
add eax, edi
sub eax, edx
mov dword [ebp + 0x20e9d0], eax
jmp 0x85573d
mov ecx, 1
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1164]
call fcn.00851890
movzx eax, byte [esp + 0x50]
mov ecx, dword [esp + 0x48]
sub ecx, eax
jne 0x85563c
mov ecx, 1
lea eax, [esp + 0x2be0]
lea edx, [esp + 0x1184]
call fcn.00851890
movzx eax, byte [esp + 0x54]
mov ecx, dword [esp + 0x4c]
sub ecx, eax
jne 0x855667
mov ecx, 1
lea edx, [esp + 0x11a4]
lea eax, [esp + 0x2be0]
call fcn.00851890
jmp 0x855681
mov ecx, 1
lea eax, [esp + 0x29c4]
call fcn.00851890
jmp 0x855392
mov ecx, 1
lea eax, [esp + 0x29c4]
call fcn.00851890
jmp 0x85534b
mov dword [ebp + 0x20e938], eax
mov dword [ebp + 0x20e93c], edx
jmp 0x854ca2
cmp edx, ecx
jle 0x854c78
mov edx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x4c]
cmovge edx, ecx
jmp 0x854c78
cmp eax, dword [esp + 0x3c]
jle 0x854c58
mov esi, dword [esp + 0x48]
cmp dword [esp + 0x3c], esi
mov eax, esi
cmovge eax, dword [esp + 0x3c]
jmp 0x854c58
jmp dword [eax*4 + 0x11c4b20]
lea edx, [ecx + ecx]
sar edx, 7
jmp 0x854abb
jmp dword [edx*4 + 0x11c4b5c]
lea edx, [ecx + ecx]
sar edx, 7
jmp 0x854aa0
cmp ecx, esi
jge 0x855307
cmp edx, ecx
mov esi, ecx
cmovge esi, edx
jmp 0x855307
cmp esi, eax
jge 0x8552c6
cmp edx, esi
mov eax, esi
cmovge eax, edx
jmp 0x8552c6
mov ebx, dword [esp + 0x70]
cmp dword [ebp + 0x2f68], 1
movzx ebx, word [ebx]
mov word [esp + 0x44], bx
mov ebx, dword [esp + 0x70]
movzx ebx, word [ebx + 2]
mov word [esp + 0x50], bx
mov ebx, dword [esp + 0x7c]
movzx esi, word [ebx + 2]
movzx ecx, word [ebx]
mov ebx, dword [esp + 0x8c]
mov word [esp + 0x54], si
movzx esi, word [ebx + 2]
movzx edx, word [ebx]
mov word [esp + 0x6c], si
je 0x855fb0
movzx eax, byte [ebx + 4]
mov esi, dword [esp + 0x7c]
mov ebx, dword [eax*4 + 0x1991e00]
movsx eax, dx
movzx edx, byte [esi + 4]
imul eax, ebx
mov esi, dword [edx*4 + 0x1991e00]
movsx edx, cx
mov ecx, dword [esp + 0x70]
sub eax, 0xffffff80
imul edx, esi
sar eax, 8
sub edx, 0xffffff80
sar edx, 8
mov dword [esp + 0x40], edx
movzx edx, byte [ecx + 4]
mov edi, dword [edx*4 + 0x1991e00]
movsx edx, word [esp + 0x44]
imul edx, edi
sub edx, 0xffffff80
sar edx, 8
cmp dword [esp + 0x40], edx
jge 0x8560f1
cmp eax, dword [esp + 0x40]
jle 0x855c06
cmp eax, edx
cmovle edx, eax
mov dword [esp + 0x40], edx
movsx edx, word [esp + 0x54]
movsx eax, word [esp + 0x50]
movsx ecx, word [esp + 0x6c]
imul edx, esi
imul eax, edi
imul ecx, ebx
sub edx, 0xffffff80
sub eax, 0xffffff80
sub ecx, 0xffffff80
sar edx, 8
sar eax, 8
sar ecx, 8
cmp edx, eax
jge 0x8560dd
cmp ecx, edx
jle 0x855c43
cmp ecx, eax
mov edx, eax
cmovle edx, ecx
mov ebx, dword [esp + 0x68]
lea esi, [esp + 0x25c4]
mov dword [esp + 4], esi
mov dword [esp + 0x30], edx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov edi, dword [esp + 0x60]
mov ecx, 0x87
mov esi, dword [esp + 0x98]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x2ff0]
mov dword [esp + 0x50], 1
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0x68]
mov ebx, dword [esp + 0xbc]
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x21c], eax
mov eax, dword [ebp + 0x2fe8]
movzx edi, byte [esp + 0x58]
mov dword [ebp + 0x218], ebx
mov ebx, dword [esp + 0x2e80]
mov esi, edx
shl eax, cl
sub ecx, dword [esp + 0x58]
shl dword [esp + 0x50], cl
imul ebx, eax
mov edx, dword [esp + 0x50]
add ebx, dword [esp + 0x84]
shl ebx, cl
test edx, edx
mov dword [esp + 0x44], ebx
movzx ebx, word [esp + 0x40]
jle 0x855d7f
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x50]
add eax, eax
mov dword [esp + 0x54], 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, ecx
xor edx, edx
mov ecx, edi
mov edi, eax
mov word [esp + 0x58], bx
nop
movzx ebx, word [esp + 0x58]
lea eax, [edi + edx]
add edx, 0xa
add eax, dword [ebp + 0x20b888]
cmp edx, dword [esp + 0x40]
mov word [eax], bx
movzx ebx, byte [esp + 0x3c]
mov word [eax + 2], si
mov byte [eax + 4], 0
mov byte [eax + 8], 1
mov byte [eax + 5], bl
movzx ebx, byte [esp + 0x48]
mov byte [eax + 9], cl
mov byte [eax + 6], bl
movzx ebx, byte [esp + 0x4c]
mov byte [eax + 7], bl
jne 0x855d20
mov eax, edi
mov edi, ecx
movzx ebx, word [esp + 0x58]
mov ecx, eax
mov eax, dword [esp + 0x50]
add dword [esp + 0x44], 1
add ecx, dword [esp + 0x54]
cmp dword [esp + 0x44], eax
jne 0x855d11
mov edi, dword [esp + 0x64]
lea esi, [esp + 0x1144]
mov eax, 0x1080
test edi, 1
jne 0x856244
test edi, 2
jne 0x856230
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x855dbf
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x855dca
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 dword [esp + 8], 0x1db
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.l_0__l_255
call fcn.010891c0
jmp 0x855707
mov dword [esp + 8], 0x1d9
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.iscore___255255256__s__lambda210
call fcn.010891c0
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jns 0x8556f9
mov dword [esp + 8], 0x1da
mov dword [esp + 4], str._home_kyle_software_ffmpeg_source_ffmpeg_git_libavcodec_snowenc.c
mov dword [esp], str.iscore___0
call fcn.010891c0
jmp 0x8556f9
movsx ecx, dx
movsx eax, word [esp + 0x48]
movsx edx, word [esp + 0x4c]
cmp eax, edx
jl 0x855f8a
cmp ecx, eax
jge 0x855e63
cmp ecx, edx
mov eax, edx
cmovge eax, ecx
movsx esi, word [esp + 0x6c]
movsx edx, word [esp + 0x5c]
movsx ecx, word [esp + 0xa0]
cmp esi, edx
jge 0x85609d
cmp ecx, esi
jle 0x855307
cmp ecx, edx
mov esi, edx
cmovle esi, ecx
jmp 0x855307
movzx ecx, byte [esp + 0x48]
mov dword [esp + 0x4c], 1
movzx ebx, byte [esp + 0x58]
shl dword [esp + 0x4c], cl
mov edi, dword [esp + 0x4c]
test edi, edi
jle 0x855f49
lea eax, [esi + esi*4]
mov edx, dword [esp + 0x44]
xor edi, edi
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], edi
mov edi, ebx
movzx ebx, byte [esp + 0x50]
lea ecx, [edx + edx*4]
add ecx, ecx
lea esi, [eax + eax*4]
add esi, esi
mov dword [esp + 0x44], esi
movzx esi, byte [esp + 0x54]
mov eax, ecx
mov ecx, esi
xor edx, edx
mov esi, eax
mov byte [esp + 0x50], cl
movzx ecx, byte [esp + 0x40]
lea eax, [edx + esi]
add edx, 0xa
add eax, dword [ebp + 0x20b888]
cmp edx, dword [esp + 0x44]
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 0x855ef0
mov eax, esi
movzx esi, byte [esp + 0x50]
mov ecx, eax
mov eax, dword [esp + 0x4c]
add dword [esp + 0x3c], 1
add ecx, dword [esp + 0x48]
cmp dword [esp + 0x3c], eax
jne 0x855ee4
add esp, 0x2e6c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x29c4]
mov ecx, 1
call fcn.00851890
mov eax, dword [ebp + 0x2f68]
jmp 0x855201
cmp edx, ecx
mov esi, ecx
cmovle esi, edx
jmp 0x855307
cmp edx, esi
mov eax, esi
cmovle eax, edx
jmp 0x8552c6
cmp ecx, eax
jle 0x855e63
cmp ecx, edx
mov eax, edx
cmovle eax, ecx
jmp 0x855e63
movzx eax, byte [ebx + 0x1256321]
lea edi, [eax - 1]
sar edi, 4
jmp 0x8559d7
movsx eax, dx
movsx edx, word [esp + 0x44]
movsx ecx, cx
mov dword [esp + 0x40], ecx
cmp ecx, edx
jl 0x8561a5
cmp eax, dword [esp + 0x40]
jge 0x855fd6
cmp eax, edx
cmovge edx, eax
mov dword [esp + 0x40], edx
movsx edx, word [esp + 0x54]
movsx ecx, word [esp + 0x50]
movsx eax, word [esp + 0x6c]
cmp edx, ecx
jge 0x8561e3
cmp eax, edx
jle 0x855c43
cmp eax, ecx
mov edx, ecx
cmovle edx, eax
jmp 0x855c43
lea edx, [ecx*4]
sar edx, 7
jmp 0x854aa0
mov edx, 1
jmp 0x854aa0
lea edx, [ecx + ecx*2]
sar edx, 8
jmp 0x854aa0
lea edx, [ecx*4]
sar edx, 7
jmp 0x854a85
mov edx, 1
jmp 0x854a85
lea edx, [ecx + ecx*2]
sar edx, 8
jmp 0x854a85
mov edx, ebx
sar edx, 7
jmp 0x854a85
mov edx, ebx
sar edx, 7
jmp 0x854aa0
lea edx, [ecx*4]
sar edx, 7
jmp 0x854abb
mov edx, 1
jmp 0x854abb
lea edx, [ecx + ecx*2]
sar edx, 8
jmp 0x854abb
mov edx, ebx
sar edx, 7
jmp 0x854abb
cmp eax, dword [esp + 0x90]
jge 0x8557ea
jmp 0x855987
cmp ecx, esi
nop
jge 0x855307
cmp ecx, edx
mov esi, edx
cmovge esi, ecx
jmp 0x855307
mov dword [esp + 0x88], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x68], 0x7fffffff
jmp 0x855098
cmp ecx, edx
jge 0x855c43
cmp ecx, eax
mov edx, eax
cmovge edx, ecx
jmp 0x855c43
cmp eax, dword [esp + 0x40]
jge 0x855c06
cmp eax, edx
cmovge edx, eax
mov dword [esp + 0x40], edx
jmp 0x855c06
movzx eax, byte [esi + 0x1256321]
lea edx, [eax - 1]
sar edx, 4
jmp 0x855a10
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 + 0x3c], eax
jmp 0x8554a7
mov eax, esi
shr eax, 0x1f
add eax, dword [esp + 0x4c]
sar eax, 1
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0x5c], eax
idiv dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x48], eax
jmp 0x85554e
cmp ebx, 0x3fff
jbe 0x8561cf
cmp ebx, 0xffff
ja 0x856269
shr eax, 8
movzx edx, byte [eax + 0x1256320]
jmp 0x8559c6
cmp esi, 0x3fff
jbe 0x8561bb
cmp esi, 0xffff
ja 0x8562b1
shr eax, 8
movzx edx, byte [eax + 0x1256320]
jmp 0x855a01
cmp eax, ecx
jle 0x855fd6
cmp eax, edx
cmovle edx, eax
mov dword [esp + 0x40], edx
jmp 0x855fd6
shr eax, 6
movzx edx, byte [eax + 0x1256320]
shr dl, 1
movzx edx, dl
jmp 0x855a01
shr eax, 6
movzx edx, byte [eax + 0x1256320]
shr dl, 1
movzx edx, dl
jmp 0x8559c6
cmp eax, edx
jge 0x855c43
cmp eax, ecx
mov edx, ecx
cmovge edx, eax
jmp 0x855c43
movzx eax, byte [esp + 0xc4]
lea edi, [ebp + 0x1ec1]
lea esi, [esp + 0xc5]
mov byte [ebp + 0x1ec0], al
mov eax, 0x107f
jmp 0x855951
movzx edx, word [esi]
sub eax, 2
add esi, 2
mov word [edi], dx
add edi, 2
jmp 0x85595d
movzx edx, word [esi]
sub eax, 2
add esi, 2
mov word [edi], dx
add edi, 2
jmp 0x855da7
movzx eax, byte [esp + 0x1144]
lea edi, [ebp + 0x1ec1]
lea esi, [esp + 0x1145]
mov byte [ebp + 0x1ec0], al
mov eax, 0x107f
jmp 0x855d9b
shr eax, 0x10
mov edi, 0x1f
or eax, 1
mov edx, ebx
bsr eax, eax
xor eax, 0x1f
sub edi, eax
sar edi, 1
lea ecx, [edi + 2]
shr edx, cl
mov eax, edx
lea ecx, [edi + 8]
shr eax, cl
movzx eax, byte [eax + 0x1256320]
mov dword [esp + 0x74], eax
mov eax, edx
mov ecx, dword [esp + 0x74]
mul dword [ecx*4 + 0x11fa3a0]
mov eax, ecx
mov ecx, edi
shl eax, cl
add edx, eax
jmp 0x8559c6
shr eax, 0x10
mov ebx, 0x1f
or eax, 1
mov edx, esi
bsr eax, eax
xor eax, 0x1f
sub ebx, eax
sar ebx, 1
lea ecx, [ebx + 2]
shr edx, cl
mov eax, edx
lea ecx, [ebx + 8]
shr eax, cl
movzx eax, byte [eax + 0x1256320]
mov dword [esp + 0x74], eax
mov eax, edx
mov ecx, dword [esp + 0x74]
mul dword [ecx*4 + 0x11fa3a0]
mov eax, ecx
mov ecx, ebx
shl eax, cl
add edx, eax
jmp 0x855a01