Function at 0xa3c410
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0xec
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
emms
cmp dword [eax + 0x620], 1
jle 0xa3c443
mov eax, dword [eax + 0x3b38]
mov eax, dword [eax + 0x84]
test eax, eax
jne 0xa3c7de
mov eax, ebp
call fcn.00a3c280
test eax, eax
mov dword [esp + 0x58], eax
js 0xa3c934
mov edx, dword [ebp + 0x3b38]
mov edi, dword [esp + 0x104]
mov esi, dword [esp + 0x104]
mov eax, dword [edx + 0x10]
mov dword [edi], eax
mov eax, dword [edx + 0x84]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x80]
mov dword [edi + 8], eax
mov eax, dword [ebp + 0x3b3c]
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov ecx, dword [eax + 0x2c]
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], ebx
mov esi, dword [eax + 0x28]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x104]
cmp ebx, ecx
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], ecx
jle 0xa3c7a0
mov ecx, dword [edx + 0x2efc]
mov dword [edi + 0xbc], ecx
mov ecx, dword [eax + 0x9c]
mov dword [edi + 0x24], ecx
mov ecx, dword [eax + 0xa0]
test ecx, ecx
mov dword [edi + 0x28], ecx
jle 0xa3c514
mov ebx, dword [eax + 0xa4]
cmp ecx, 1
mov dword [edi + 0x2c], ebx
mov ebx, dword [eax + 0xd4]
mov dword [edi + 0x3c], ebx
je 0xa3c514
mov ebx, dword [eax + 0xa8]
cmp ecx, 2
mov dword [edi + 0x30], ebx
mov ebx, dword [eax + 0xd8]
mov dword [edi + 0x40], ebx
je 0xa3c514
mov ecx, dword [eax + 0xac]
mov eax, dword [eax + 0xdc]
mov dword [edi + 0x34], ecx
mov dword [edi + 0x44], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00a7ab20
xor eax, eax
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x8c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp], ebp
shl eax, 3
mov dword [esp + 4], eax
call fcn.00adc6f0
test eax, eax
js 0xa3c934
mov edx, dword [ebp + 0x3b38]
xor eax, eax
mov edi, dword [esp + 0x104]
mov ecx, dword [edx + eax + 0x21c0]
mov dword [edi + eax + 0x90], ecx
add eax, 4
cmp eax, 0x20
jb 0xa3c562
mov eax, dword [ebp + 0x3b3c]
pxor xmm7, xmm7
cvtss2sd xmm7, dword [eax + 0x94]
movsd qword [edi + 0x88], xmm7
mov edi, dword [ebp + 0x88]
test edi, edi
jne 0xa3ca88
mov edx, dword [esp + 0x8c]
lea eax, [ebp + 0x5f0]
mov dword [esp + 0x50], eax
test edx, edx
jg 0xa3c73c
jmp 0xa3cb36
mov edi, dword [ebp + 0x5e8]
add ecx, edi
mov dword [esp], ecx
mov dword [esp + 0x48], ecx
call fcn.00a2dc90
test eax, eax
mov ebx, eax
je 0xa3c934
mov esi, dword [ebp + 0x5e8]
and esi, 0xfffffff0
mov dword [esp + 8], esi
mov eax, dword [ebp + 0x5ec]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [ebp + 0x9294]
mov ecx, dword [ebp + 0x5e8]
lea eax, [ebx + esi]
mov edx, dword [ebp + 0x5ec]
mov edi, eax
sub ecx, esi
add edx, esi
cmp ecx, 8
mov esi, edx
jae 0xa3c963
rep movsb byte es:[edi], byte [esi]
mov eax, ebx
mov edx, dword [ebp + 0x5ec]
mov edi, dword [esp + 0x48]
sub eax, edx
add dword [ebp + 0x5f0], eax
add dword [ebp + 0x5f4], eax
add dword [ebp + 0x3660], eax
add dword [ebp + 0x3664], eax
lea ecx, [ebx + edi]
mov dword [ebp + 0x5f8], ecx
mov dword [ebp + 0x3668], ecx
mov dword [esp], edx
call fcn.00a2dcf0
mov edx, dword [ebp + 0x5f4]
mov dword [ebp + 0x5ec], ebx
mov dword [ebp + 0x5e8], edi
mov eax, dword [ebp + 0x5dc]
mov ecx, 0x20
mov esi, dword [ebp + 0x5e4]
mov edi, dword [ebp + 0x5f0]
shl eax, 5
add eax, esi
mov esi, dword [ebp + 0x600]
sub edx, edi
mov dword [eax], 0
mov dword [eax + 4], 0xc
sub ecx, esi
lea ecx, [ecx + edx*8]
test ecx, ecx
lea edx, [ecx + 7]
cmovns edx, ecx
sar edx, 3
add ebx, edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x40]
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
call fcn.00a370d0
mov eax, ebp
call fcn.00a39270
test eax, eax
mov edx, eax
jne 0xa3c934
mov ecx, dword [ebp + 0x358]
mov esi, dword [ebp + 0x5dc]
test ecx, ecx
lea ebx, [esi - 1]
je 0xa3c9a0
mov eax, dword [ebp + 0x5e4]
shl ebx, 5
add ebx, eax
mov esi, dword [ebx + 0x14]
test esi, esi
js 0xa3c934
mov edx, dword [esp + 0x8c]
add dword [esp + 0x58], esi
sub edx, esi
test edx, edx
mov dword [esp + 0x8c], edx
jle 0xa3cb36
mov ecx, dword [ebp + 0x300]
mov eax, 6
mov ebx, dword [ebp + 0x340]
sub eax, ecx
cmp ebx, edx
jge 0xa3c950
test ebx, ebx
je 0xa3c950
sub edx, ebx
mov ecx, ebx
sub ecx, eax
sub eax, edx
mov edx, 0
cmovs eax, edx
sub ecx, eax
mov dword [esp + 0x40], ecx
mov eax, ecx
lea ecx, [eax + 0x20]
mov edx, dword [ebp + 0x5f4]
mov eax, dword [ebp + 0x5f8]
sub eax, edx
cmp ecx, eax
jg 0xa3c5c0
mov ebx, dword [ebp + 0x5ec]
jmp 0xa3c66f
jl 0xa3c7ac
cmp dword [esp + 0x40], esi
jae 0xa3c4b2
mov eax, str.invalid_DTS:_PTS_is_less_than_DTS_n
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00a2d890
mov edx, dword [ebp + 0x3b38]
mov eax, dword [ebp + 0x3b3c]
mov edi, dword [esp + 0x104]
jmp 0xa3c4b2
mov edi, dword [ebp + 0x2168]
test edi, edi
je 0xa3c443
mov dword [esp], ebp
call fcn.00add970
mov eax, dword [ebp + 0x5dc]
mov edx, 0x20
mov ecx, dword [ebp + 0x5f4]
mov edi, dword [ebp + 0x5f0]
mov ebx, dword [ebp + 0x600]
mov esi, dword [ebp + 0x5e4]
shl eax, 5
sub ecx, edi
sub edx, ebx
add eax, esi
mov esi, dword [ebp + 0x5ec]
lea ecx, [edx + ecx*8]
test ecx, ecx
lea edx, [ecx + 7]
cmovns edx, ecx
sar edx, 3
add edx, esi
mov dword [eax + 0x18], edx
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x5f0]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00a362c0
mov eax, ebp
call fcn.00a39270
test eax, eax
jne 0xa3c934
mov edi, dword [ebp + 0x5e4]
mov esi, dword [edi + 4]
lea edx, [esi - 7]
cmp edx, 2
lea esi, [edi + 0x20]
ja 0xa3dc9e
lea esi, [esi]
lea edi, [edi]
mov ecx, esi
inc eax
mov edx, dword [ecx + 4]
mov ebx, eax
shl ebx, 5
lea esi, [esi + 0x20]
sub edx, 7
cmp edx, 2
jbe 0xa3c8a0
lea edx, [eax + 1]
shl edx, 5
mov dword [esp + 0x40], edx
mov esi, dword [ebp + 0x5dc]
xor edx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], esi
add esi, 0x7ffffff
shl esi, 5
add esi, edi
mov eax, dword [esi + edx]
mov dword [esp + edx + 0x90], eax
add edx, 4
cmp edx, 0x20
jb 0xa3c8db
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x58]
mov dword [esp + 4], ecx
sub esi, eax
mov eax, esi
dec eax
shl eax, 5
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
add edi, eax
mov dword [esp], edi
call sub.msvcrt.dll_memmove
mov edx, dword [ebp + 0x5e4]
xor eax, eax
add ebx, edx
mov edx, dword [esp + eax + 0x90]
mov dword [ebx + eax], edx
add eax, 4
cmp eax, 0x20
jb 0xa3c91d
jmp 0xa3c443
mov eax, 0xffffffff
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
sub edx, eax
mov eax, 0
cmovns eax, edx
mov dword [esp + 0x40], eax
jmp 0xa3c777
test al, 1
jne 0xa3da4d
test edi, 2
jne 0xa3da38
test edi, 4
je 0xa3c61e
mov eax, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], eax
jmp 0xa3c61e
test ebx, ebx
mov ecx, dword [ebp + 0x5e4]
jle 0xa3c9c9
mov edi, esi
shl edi, 5
lea eax, [ecx + 0x14]
lea edi, [ecx + edi - 0xc]
lea esi, [esi]
lea edi, [edi]
add edx, dword [eax]
add eax, 0x20
cmp edi, eax
jne 0xa3c9c0
mov eax, dword [ebp + 0x35c]
mov dword [esp + 0x40], eax
mov eax, ebx
shl eax, 5
add ecx, eax
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x14]
lea edi, [eax + eax*2]
mov eax, edi
shr eax, 0x1f
add eax, edi
mov edi, dword [esp + 0x40]
sar eax, 1
add eax, edx
lea eax, [eax + esi*4 + 0x44]
mov esi, dword [ecx + 0x1c]
add eax, esi
cmp eax, dword [edi + 0x60c]
jg 0xa3d7cd
mov eax, edi
mov edi, dword [esp + 0x48]
mov esi, dword [eax + 0x608]
mov dword [esp + 0x68], edx
add esi, edx
jmp 0xa3ca23
lea ecx, [eax + edi]
test ebx, ebx
mov eax, 1
je 0xa3ca44
mov edx, dword [ecx + 4]
sub edx, 7
cmp edx, 1
jbe 0xa3ca44
mov edx, dword [ebp + 0x88]
xor eax, eax
test edx, edx
setne al
mov dword [ecx + 8], eax
inc ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00a8fd40
mov eax, dword [ebp + 0x5e4]
mov ecx, dword [eax + edi + 0x14]
add edi, 0x20
add esi, ecx
cmp ebx, dword [ebp + 0x5dc]
jl 0xa3ca20
mov edi, dword [esp + 0x68]
emms
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x608]
add edi, edx
sub esi, edi
jmp 0xa3c718
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x58]
mov edi, dword [ebp + 0x35c]
mov edx, dword [ebp + 0x5dc]
add eax, ebx
cmp eax, dword [edi + 0x60c]
mov dword [esp + 0x40], edi
jg 0xa3d9a8
mov esi, dword [ebp + 0x5e4]
add edx, 0x7ffffff
shl edx, 5
add edx, esi
mov edi, dword [edx + 0x14]
mov eax, dword [edx + 0x18]
add edi, eax
cmp ebx, 8
jae 0xa3d87e
test bl, 4
je 0xa3cae1
mov dword [edi], 0
add edi, 4
test bl, 2
je 0xa3caee
mov word [edi], 0
add edi, 2
test bl, 1
je 0xa3caf6
mov byte [edi], 0
mov ecx, dword [esp + 0x8c]
mov eax, dword [edx + 0x14]
add dword [esp + 0x58], ecx
mov dword [edx + 0x1c], ecx
add eax, ecx
mov ecx, dword [ebp + 0x300]
mov dword [edx + 0x14], eax
test ecx, ecx
jne 0xa3cb36
mov edx, dword [edx + 0x18]
sub eax, 4
mov ecx, eax
sar ecx, 0x18
mov byte [edx], cl
mov ecx, eax
sar ecx, 0x10
mov byte [edx + 1], cl
mov ecx, eax
sar ecx, 8
mov byte [edx + 2], cl
mov byte [edx + 3], al
mov edx, dword [ebp + 0x5dc]
mov eax, dword [esp + 0x100]
mov edi, dword [esp + 0x60]
mov dword [eax], edx
mov eax, dword [ebp + 0x5e4]
mov dword [edi], eax
xor edi, edi
mov dword [ebp + 0x5dc], edi
mov dword [esp], ebp
call fcn.00ae4970
mov edx, dword [ebp + 0x35c]
cmp ebp, edx
je 0xa3cbc3
lea edi, [ebp + 0x7728]
mov eax, 0xa18
test edi, 1
lea esi, [edx + 0x7728]
jne 0xa3db2b
test edi, 2
jne 0xa3dbe8
test edi, 4
jne 0xa3dbd5
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0xa3cbb8
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0xa3cbc3
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [ebp + 0xcb8]
pxor xmm0, xmm0
inc dword [ebp + eax*4 + 0x7728]
mov esi, eax
lea ecx, [eax*8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
lea edi, [ebp + ecx]
cdq
add dword [edi + 0x7738], eax
adc dword [edi + 0x773c], edx
add ecx, esi
mov eax, dword [ebp + 0x3b3c]
cvtss2sd xmm0, dword [eax + 0x90]
lea eax, [esi + ecx*2]
xor ecx, ecx
lea ebx, [ebp + eax*8]
addsd xmm0, qword [edi + 0x7750]
movsd qword [edi + 0x7750], xmm0
nop
mov eax, dword [ebp + ecx*4 + 0x814c]
cdq
add dword [ebx + ecx*8 + 0x7858], eax
adc dword [ebx + ecx*8 + 0x785c], edx
inc ecx
cmp ecx, 0x13
jne 0xa3cc20
mov esi, dword [esp + 0x40]
mov ecx, dword [ebp + 0x82ac]
mov eax, esi
shl eax, 4
mov ebx, ecx
add eax, esi
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a20], ecx
lea esi, [ebp + 0x8110]
adc dword [ebp + eax*8 + 0x7a24], ebx
mov ecx, dword [ebp + 0x82b0]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a28], ecx
adc dword [ebp + eax*8 + 0x7a2c], ebx
mov ecx, dword [ebp + 0x82b4]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a30], ecx
adc dword [ebp + eax*8 + 0x7a34], ebx
mov ecx, dword [ebp + 0x82b8]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a38], ecx
adc dword [ebp + eax*8 + 0x7a3c], ebx
mov ecx, dword [ebp + 0x82bc]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a40], ecx
adc dword [ebp + eax*8 + 0x7a44], ebx
mov ecx, dword [ebp + 0x82c0]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a48], ecx
adc dword [ebp + eax*8 + 0x7a4c], ebx
mov ecx, dword [ebp + 0x82c4]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a50], ecx
adc dword [ebp + eax*8 + 0x7a54], ebx
mov ecx, dword [ebp + 0x82c8]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a58], ecx
adc dword [ebp + eax*8 + 0x7a5c], ebx
mov ecx, dword [ebp + 0x82cc]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a60], ecx
adc dword [ebp + eax*8 + 0x7a64], ebx
mov ecx, dword [ebp + 0x82d0]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a68], ecx
adc dword [ebp + eax*8 + 0x7a6c], ebx
mov ecx, dword [ebp + 0x82d4]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a70], ecx
adc dword [ebp + eax*8 + 0x7a74], ebx
mov ecx, dword [ebp + 0x82d8]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a78], ecx
adc dword [ebp + eax*8 + 0x7a7c], ebx
mov ecx, dword [ebp + 0x82dc]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a80], ecx
adc dword [ebp + eax*8 + 0x7a84], ebx
mov ecx, dword [ebp + 0x82e0]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a88], ecx
adc dword [ebp + eax*8 + 0x7a8c], ebx
mov ecx, dword [ebp + 0x82e4]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a90], ecx
adc dword [ebp + eax*8 + 0x7a94], ebx
mov ecx, dword [ebp + 0x82e8]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7a98], ecx
adc dword [ebp + eax*8 + 0x7a9c], ebx
mov ecx, dword [ebp + 0x82ec]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + eax*8 + 0x7aa0], ecx
adc dword [ebp + eax*8 + 0x7aa4], ebx
mov eax, dword [ebp + 0x81a4]
cdq
add dword [ebp + 0x7b30], eax
mov eax, dword [ebp + 0x81a8]
adc dword [ebp + 0x7b34], edx
cdq
add dword [ebp + 0x7b38], eax
mov eax, dword [ebp + 0x82f0]
adc dword [ebp + 0x7b3c], edx
cdq
add dword [ebp + 0x7f40], eax
mov eax, dword [ebp + 0x82f4]
adc dword [ebp + 0x7f44], edx
cdq
add dword [ebp + 0x7f48], eax
mov eax, dword [ebp + 0x82f8]
adc dword [ebp + 0x7f4c], edx
cdq
add dword [ebp + 0x7f50], eax
mov eax, dword [ebp + 0x82fc]
adc dword [ebp + 0x7f54], edx
cdq
add dword [ebp + 0x7f58], eax
adc dword [ebp + 0x7f5c], edx
mov eax, dword [ebp + 0x8300]
cdq
add dword [ebp + 0x7f60], eax
mov eax, dword [ebp + 0x8304]
adc dword [ebp + 0x7f64], edx
cdq
add dword [ebp + 0x7f68], eax
lea eax, [ebp + 0x7f70]
adc dword [ebp + 0x7f6c], edx
lea edx, [ebp + 0x8308]
mov ecx, dword [edx]
mov ebx, ecx
sar ebx, 0x1f
add dword [eax], ecx
mov ecx, dword [edx + 4]
adc dword [eax + 4], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 8], ecx
mov ecx, dword [edx + 8]
adc dword [eax + 0xc], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x10], ecx
mov ecx, dword [edx + 0xc]
adc dword [eax + 0x14], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x18], ecx
mov ecx, dword [edx + 0x10]
adc dword [eax + 0x1c], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x20], ecx
mov ecx, dword [edx + 0x14]
adc dword [eax + 0x24], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x28], ecx
mov ecx, dword [edx + 0x18]
adc dword [eax + 0x2c], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x30], ecx
mov ecx, dword [edx + 0x1c]
adc dword [eax + 0x34], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x38], ecx
mov ecx, dword [edx + 0x20]
adc dword [eax + 0x3c], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x40], ecx
mov ecx, dword [edx + 0x24]
adc dword [eax + 0x44], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x48], ecx
mov ecx, dword [edx + 0x28]
adc dword [eax + 0x4c], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x50], ecx
mov ecx, dword [edx + 0x2c]
adc dword [eax + 0x54], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x58], ecx
mov ecx, dword [edx + 0x30]
adc dword [eax + 0x5c], ebx
mov ebx, ecx
sar ebx, 0x1f
add dword [eax + 0x60], ecx
adc dword [eax + 0x64], ebx
add eax, 0x68
add edx, 0x34
cmp esi, eax
jne 0xa3ce9a
cmp dword [esp + 0x40], 2
je 0xa3cfd0
mov eax, dword [esp + 0x40]
mov esi, eax
shl esi, 9
lea edx, [eax + eax]
add esi, ebp
xor eax, eax
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebp + eax*4 + 0x81ac]
mov ebx, ecx
sar ebx, 0x1f
add dword [esi + eax*8 + 0x7b40], ecx
adc dword [esi + eax*8 + 0x7b44], ebx
inc eax
cmp eax, 0x20
jne 0xa3cf80
inc edx
xor eax, eax
shl edx, 8
add edx, ebp
lea esi, [ebp + 0x80]
nop
mov ecx, dword [esi + eax*4 + 0x81ac]
mov ebx, ecx
sar ebx, 0x1f
add dword [edx + eax*8 + 0x7b40], ecx
adc dword [edx + eax*8 + 0x7b44], ebx
inc eax
cmp eax, 0x20
jne 0xa3cfb0
mov eax, dword [ebp + 0x83d8]
mov esi, dword [esp + 0x40]
cdq
add dword [ebp + 0x8110], eax
mov eax, dword [ebp + 0x83dc]
adc dword [ebp + 0x8114], edx
cdq
add dword [ebp + 0x8118], eax
mov eax, dword [ebp + 0x83e0]
adc dword [ebp + 0x811c], edx
cdq
add dword [ebp + 0x8120], eax
adc dword [ebp + 0x8124], edx
test esi, esi
jne 0xa3d769
mov ebx, dword [ebp + 0x210]
test ebx, ebx
jle 0xa3d053
mov edx, dword [ebp + 0xe3c]
xor eax, eax
mov ecx, dword [ebp + 0xe6c]
test edx, edx
mov edx, dword [ebp + 0x813c]
setne al
add dword [ebp + 0x8138], eax
test ecx, ecx
mov al, 1
je 0xa3dc63
movzx eax, al
add eax, edx
mov dword [ebp + 0x813c], eax
mov eax, dword [ebp + 0x3b38]
movzx edx, byte [eax + 0x8a]
inc dword [ebp + edx*4 + 0x7768]
xor edx, edx
movsd xmm1, qword [edi + 0x7840]
pxor xmm0, xmm0
mov byte [esp + 0x90], dl
lea ebx, [esp + 0x90]
cvtss2sd xmm0, dword [eax + 0x40]
addsd xmm1, xmm0
movsd qword [edi + 0x7840], xmm1
mov ecx, dword [ebp + 0x268]
test ecx, ecx
je 0xa3d3c2
mov eax, dword [ebp + 0x83f0]
pxor xmm1, xmm1
movsd xmm6, qword [0xde5488]
mov edx, dword [ebp + 0x83f4]
mov ecx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x83f8]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x83fc]
fild qword [esp + 0x40]
imul esi, ecx
mov ebx, dword [ebp + 0x488c]
mov ecx, dword [ebp + 0x4890]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x8400]
mov dword [esp + 0x4c], edx
mov edx, dword [ebp + 0x8404]
cvtsi2sd xmm1, esi
mulsd xmm1, qword [0xde5480]
add ecx, ebx
mov ebx, esi
fstp qword [esp + 0x60]
sar ebx, cl
movsd xmm7, qword [esp + 0x60]
divsd xmm7, xmm1
mov dword [esp + 0x50], eax
comisd xmm6, xmm7
mov dword [esp + 0x54], edx
jae 0xa3d997
movsd qword [esp + 0x68], xmm0
movsd qword [esp], xmm7
call sub.msvcrt.dll_log10
movsd xmm0, qword [esp + 0x68]
movsd xmm4, qword [0xde5488]
fstp qword [esp + 0x60]
movsd xmm2, qword [esp + 0x60]
mulsd xmm2, qword [0xde5490]
fild qword [esp + 0x48]
pxor xmm1, xmm1
cvtsi2sd xmm1, ebx
mov eax, dword [esp + 0x104]
mulsd xmm1, qword [0xde5480]
movsd qword [eax + 0x70], xmm2
fstp qword [esp + 0x60]
movsd xmm3, qword [esp + 0x60]
divsd xmm3, xmm1
comisd xmm4, xmm3
jae 0xa3d986
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x68], xmm0
movsd qword [esp], xmm3
call sub.msvcrt.dll_log10
mov eax, dword [esp + 0x104]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x70]
movsd xmm1, qword [esp + 0x78]
movsd xmm6, qword [0xde5488]
fstp qword [esp + 0x60]
movsd xmm3, qword [esp + 0x60]
mulsd xmm3, qword [0xde5490]
fild qword [esp + 0x50]
movsd qword [eax + 0x78], xmm3
fstp qword [esp + 0x60]
movsd xmm7, qword [esp + 0x60]
divsd xmm7, xmm1
comisd xmm6, xmm7
jae 0xa3d975
movsd qword [esp + 0x78], xmm3
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x68], xmm0
movsd qword [esp], xmm7
call sub.msvcrt.dll_log10
mov eax, dword [esp + 0x104]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x70]
movsd xmm3, qword [esp + 0x78]
movsd xmm7, qword [0xde5488]
fstp qword [esp + 0x60]
movsd xmm4, qword [esp + 0x60]
mulsd xmm4, qword [0xde5490]
movsd qword [eax + 0x80], xmm4
mov eax, dword [esp + 0x40]
pxor xmm1, xmm1
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
adc edx, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x54]
mov dword [esp + 0x40], eax
lea eax, [esi + ebx*2]
cvtsi2sd xmm1, eax
mulsd xmm1, qword [0xde5480]
mov dword [esp + 0x44], edx
fild qword [esp + 0x40]
fstp qword [esp + 0x40]
movsd xmm5, qword [esp + 0x40]
divsd xmm5, xmm1
comisd xmm7, xmm5
jae 0xa3d968
movsd qword [esp + 0x70], xmm4
movsd qword [esp + 0x68], xmm3
movsd qword [esp + 0x60], xmm2
movsd qword [esp + 0x50], xmm0
movsd qword [esp], xmm5
call sub.msvcrt.dll_log10
movsd xmm0, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x60]
movsd xmm3, qword [esp + 0x68]
movsd xmm4, qword [esp + 0x70]
fstp qword [esp + 0x48]
movsd xmm1, qword [esp + 0x48]
mulsd xmm1, qword [0xde5490]
mov eax, dword [esp + 0x104]
mov edx, 0x50
movsd xmm5, qword [esp + 0x40]
lea ebx, [esp + 0x90]
mulsd xmm5, xmm0
addsd xmm5, qword [edi + 0x77b0]
movsd qword [esp + 0x48], xmm0
movsd qword [eax + 0x68], xmm1
mov eax, str._PSNR_Y:_5.2f_U:_5.2f_V:_5.2f
movsd qword [edi + 0x77b0], xmm5
mulsd xmm1, xmm0
addsd xmm1, qword [edi + 0x77c8]
movsd qword [edi + 0x77c8], xmm1
movapd xmm1, xmm0
mulsd xmm1, xmm2
addsd xmm1, qword [edi + 0x77e0]
movsd qword [edi + 0x77e0], xmm1
movapd xmm1, xmm0
mulsd xmm1, xmm3
addsd xmm1, qword [edi + 0x77f8]
movsd qword [edi + 0x77f8], xmm1
movapd xmm1, xmm0
mulsd xmm1, xmm4
addsd xmm1, qword [edi + 0x7810]
movsd qword [edi + 0x7810], xmm1
mov dword [esp + 8], eax
movsd qword [esp + 0x1c], xmm4
movsd qword [esp + 0x14], xmm3
mov dword [esp + 4], edx
movsd qword [esp + 0xc], xmm2
mov dword [esp], ebx
call fcn.00bd2660
mov eax, dword [ebp + 0xcb8]
movsd xmm0, qword [esp + 0x48]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x26c]
test eax, eax
jne 0xa3d8b3
mov edx, dword [ebp + 0x3b3c]
xor eax, eax
mov byte [esp + 0xdf], al
mov edi, dword [ebp + 0x81a0]
mov esi, dword [ebp + 0x819c]
mov ecx, dword [ebp + 0x8198]
mov eax, dword [edx + 4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
cmp eax, 2
je 0xa3d95e
cmp eax, 1
sbb eax, eax
and eax, 0xe
add eax, 0x42
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x58]
pxor xmm6, xmm6
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x628]
mov dword [esp + 0x18], eax
cvtss2sd xmm6, dword [edx + 0x90]
movsd qword [esp + 0x10], xmm6
mov eax, dword [ebp + 0x618]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, str.frame_4d_QP_.2f_NAL_d_Slice:_c_Poc:__3d_I:__4d_P:__4d_SKIP:__4d_size_d_bytes_s_n
mov dword [esp + 8], eax
mov eax, 3
mov dword [esp + 4], eax
call fcn.00a2d890
mov edx, dword [ebp + 0x35c]
cmp ebp, edx
je 0xa3d4d6
lea edi, [edx + 0x7728]
mov eax, 0xa18
test edi, 1
lea esi, [ebp + 0x7728]
jne 0xa3dbb2
test edi, 2
jne 0xa3db9d
test edi, 4
jne 0xa3db8a
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0xa3d4cb
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0xa3d4d6
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [esp + 0x5c]
cmp ebp, eax
je 0xa3d536
lea edi, [eax + 0x7728]
mov eax, 0xa18
test edi, 1
lea esi, [ebp + 0x7728]
jne 0xa3db63
test edi, 2
jne 0xa3db4e
test edi, 4
jne 0xa3dc50
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0xa3d52b
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0xa3d536
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov edx, dword [ebp + 0x3b40]
xor ebx, ebx
test edx, edx
jg 0xa3d549
jmp 0xa3d57e
inc ebx
cmp ebx, edx
jge 0xa3d57e
mov eax, dword [ebp + ebx*4 + 0x3b48]
test eax, eax
je 0xa3d544
mov edi, dword [eax + 0xad0]
test edi, edi
je 0xa3d544
mov dword [esp + 4], eax
xor esi, esi
mov dword [esp], ebp
call fcn.00a7ad90
mov edx, dword [ebp + 0x3b40]
mov dword [ebp + ebx*4 + 0x3b48], esi
inc ebx
cmp ebx, edx
jl 0xa3d549
mov eax, dword [ebp + 0x200]
test eax, eax
je 0xa3d758
mov ebx, 0xde48d4
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00a2ec20
test eax, eax
mov esi, eax
je 0xa3d758
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0xa3da5a
mov eax, dword [ebp + 0x20]
xor edi, edi
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0xc], edi
mov edx, dword [ebp + 0x488c]
mov ecx, dword [ebp + 0x4890]
imul eax, ebx
add ecx, edx
mov edx, eax
shr edx, cl
lea eax, [eax + edx*2]
mov edx, dword [ebp + 0x3b3c]
imul dword [edx + 0x64]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00bd25b0
test eax, eax
jne 0xa3d750
mov edx, dword [ebp + 0x21c8]
xor ebx, ebx
mov dword [esp + 0x40], ebx
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esp + 0x40]
xor eax, eax
cmp edx, 3
sete al
lea eax, [eax + eax + 1]
cmp edi, eax
jge 0xa3d677
mov eax, dword [ebp + 0x20]
xor ebx, ebx
shl edi, 2
test eax, eax
jle 0xa3d671
mov edx, dword [ebp + 0x3b3c]
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0x1c]
add edx, edi
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
mov eax, dword [edx + 0xa4]
mov ecx, dword [edx + 0xd4]
imul eax, ebx
inc ebx
add eax, ecx
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
cmp ebx, dword [ebp + 0x20]
jl 0xa3d630
mov edx, dword [ebp + 0x21c8]
inc dword [esp + 0x40]
jmp 0xa3d610
cmp edx, 3
je 0xa3d750
mov ecx, dword [ebp + 0x4890]
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp + 0x1c]
sar eax, cl
sar edi, 1
mov ebx, eax
imul ebx, edi
mov dword [esp + 0x48], eax
lea edx, [ebx + 0x20]
lea eax, [edx + edx]
mov dword [esp], eax
mov dword [esp + 0x40], edx
call fcn.00a2dc90
test eax, eax
mov ecx, eax
je 0xa3d750
mov edx, dword [esp + 0x40]
add edx, eax
mov eax, dword [ebp + 0x3b3c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
mov eax, dword [eax + 0xd8]
mov dword [esp + 8], edx
mov dword [esp], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 4], edi
call dword [ebp + 0x9274]
mov ecx, dword [esp + 0x40]
mov eax, 1
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], ecx
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x48]
mov eax, 1
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_fwrite
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
call fcn.00a2dcf0
mov dword [esp], esi
call sub.msvcrt.dll_fclose
emms
mov eax, dword [esp + 0x58]
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x40], 1
jne 0xa3d053
mov eax, dword [ebp + 0xcf0]
inc dword [ebp + eax*4 + 0x8130]
mov eax, dword [ebp + 0x70ac]
test eax, eax
je 0xa3d7c2
mov ebx, dword [ebp + 0x8128]
mov ecx, dword [ebp + 0x812c]
lea eax, [ebx + ecx]
cmp eax, dword [ebp + 0x4888]
jg 0xa3dacf
mov esi, dword [ebp + 0x83e4]
mov eax, dword [ebp + 0x83e8]
add ebx, esi
add ecx, eax
mov dword [ebp + 0x8128], ebx
mov dword [ebp + 0x812c], ecx
mov eax, dword [ebp + 0x3b38]
jmp 0xa3d067
add eax, eax
mov dword [esp], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x70], eax
call fcn.00a2dc90
test eax, eax
mov dword [esp + 0x68], eax
je 0xa3c934
mov edx, dword [esp + 0x78]
xor edi, edi
test edx, edx
jne 0xa3dab1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
mov esi, dword [eax + 0x608]
sub ecx, esi
test ebx, ebx
jle 0xa3d839
mov edx, dword [ebp + 0x5e4]
lea eax, [edx + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x48]
lea edx, [edx + eax + 0x18]
mov eax, dword [esp + 0x78]
lea esi, [esi]
lea edi, [edi]
add dword [eax], ecx
add eax, 0x20
cmp edx, eax
jne 0xa3d830
mov dword [esp], esi
call fcn.00a2dcf0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov dword [eax + 0x60c], edx
mov dword [eax + 0x608], esi
add esi, edi
cmp dword [ebp + 0x5dc], ebx
jle 0xa3ca73
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x5e4]
mov dword [esp + 0x68], edi
mov edi, eax
add ecx, eax
jmp 0xa3ca23
test edi, 1
jne 0xa3dc94
test edi, 2
jne 0xa3dc84
test edi, 4
jne 0xa3dc73
mov ecx, ebx
xor eax, eax
shr ecx, 2
and ebx, 3
rep stosd dword es:[edi], eax
jmp 0xa3cad3
mov eax, dword [esp + 0x104]
movsd xmm6, qword [ebp + 0x8408]
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp + 0x8410]
divsd xmm6, xmm1
mov edx, ebx
mulsd xmm0, xmm6
movapd xmm1, xmm6
movsd qword [eax + 0x60], xmm6
mov eax, dword [esp + 0x40]
lea eax, [ebp + eax*8]
addsd xmm0, qword [eax + 0x7828]
movsd qword [eax + 0x7828], xmm0
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0xa3d8f9
mov ecx, eax
movsd qword [esp + 0xc], xmm1
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov cl, al
add cl, al
mov eax, str._SSIM_Y:_.5f
sbb edx, 3
sub edx, ebx
mov dword [esp + 8], eax
mov eax, 0x50
sub eax, edx
add edx, ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00bd2660
mov eax, dword [ebp + 0xcb8]
mov dword [esp + 0x40], eax
jmp 0xa3d3d0
mov eax, 0x49
jmp 0xa3d410
movsd xmm1, qword [0xde5478]
jmp 0xa3d2f7
movsd xmm4, qword [0xde5478]
movapd xmm7, xmm6
jmp 0xa3d254
movsd xmm3, qword [0xde5478]
movapd xmm6, xmm4
jmp 0xa3d1e4
movsd xmm2, qword [0xde5478]
movapd xmm4, xmm6
jmp 0xa3d15d
add eax, eax
mov dword [esp], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], eax
call fcn.00a2dc90
test eax, eax
mov ebx, eax
je 0xa3c934
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
test esi, esi
jne 0xa3dbfd
mov eax, dword [esp + 0x40]
mov ecx, ebx
mov esi, dword [eax + 0x608]
sub ecx, esi
test edx, edx
jle 0xa3da0a
mov eax, dword [ebp + 0x5e4]
shl edx, 5
add edx, eax
jmp 0xa3da00
add dword [eax + 0x18], ecx
add eax, 0x20
cmp edx, eax
jne 0xa3da00
mov dword [esp], esi
call fcn.00a2dcf0
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x48]
mov dword [eax + 0x608], ebx
mov ebx, dword [esp + 0x8c]
mov dword [eax + 0x60c], edi
mov edx, dword [ebp + 0x5dc]
jmp 0xa3cab1
movzx eax, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], ax
jmp 0xa3c977
movzx edx, byte [edx]
inc edi
inc esi
dec ecx
mov byte [eax], dl
jmp 0xa3c96b
mov edx, dword [ebp + 4]
test edx, edx
jle 0xa3d5b2
xor ebx, ebx
jmp 0xa3da79
inc ebx
cmp ebx, edx
jge 0xa3d5b2
mov eax, dword [ebp + ebx*4 + 0x35c]
mov ecx, dword [eax + 0x5a0]
test ecx, ecx
je 0xa3da70
xor edi, edi
mov dword [eax + 0x5a0], edi
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x5b8]
mov dword [esp], eax
call fcn.00a4cae0
test eax, eax
js 0xa3d5b2
mov edx, dword [ebp + 4]
jmp 0xa3da70
mov edi, eax
mov eax, dword [esp + 0x40]
cmp edx, 8
mov ecx, edx
mov eax, dword [eax + 0x608]
mov esi, eax
jae 0xa3dafb
rep movsb byte es:[edi], byte [esi]
mov edi, edx
jmp 0xa3d7f9
lea ebx, [ebx + ebx*8]
mov esi, 0x66666667
mov eax, ebx
imul esi
sar ebx, 0x1f
lea ecx, [ecx + ecx*8]
mov eax, ecx
sar edx, 2
sub edx, ebx
mov ebx, edx
imul esi
sar ecx, 0x1f
sar edx, 2
sub edx, ecx
mov ecx, edx
jmp 0xa3d7a6
test edi, 1
jne 0xa3dcc5
test edi, 2
jne 0xa3dcb0
test edi, 4
je 0xa3dac6
mov eax, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], eax
jmp 0xa3dac6
movzx eax, byte [edx + 0x7728]
lea edi, [ebp + 0x7729]
lea esi, [edx + 0x7729]
mov byte [ebp + 0x7728], al
mov eax, 0xa17
jmp 0xa3cb88
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0xa3d507
movzx eax, byte [ebp + 0x7728]
lea esi, [ebp + 0x7729]
mov edi, dword [esp + 0x5c]
mov byte [edi + 0x7728], al
add edi, 0x7729
mov eax, 0xa17
jmp 0xa3d4fb
mov edx, dword [esi]
add edi, 4
add esi, 4
sub eax, 4
mov dword [edi - 4], edx
jmp 0xa3d4b3
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0xa3d4a7
movzx eax, byte [ebp + 0x7728]
lea edi, [edx + 0x7729]
lea esi, [ebp + 0x7729]
mov byte [edx + 0x7728], al
mov eax, 0xa17
jmp 0xa3d49b
mov edx, dword [esi]
add edi, 4
add esi, 4
sub eax, 4
mov dword [edi - 4], edx
jmp 0xa3cba0
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0xa3cb94
mov eax, dword [esp + 0x58]
mov edi, ebx
mov esi, dword [esp + 0x40]
cmp eax, 8
mov ecx, eax
mov esi, dword [esi + 0x608]
jae 0xa3dc1b
rep movsb byte es:[edi], byte [esi]
jmp 0xa3d9d4
test bl, 1
jne 0xa3dcea
test edi, 2
jne 0xa3dcd5
test edi, 4
je 0xa3dc14
mov eax, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], eax
rep movsb byte es:[edi], byte [esi]
jmp 0xa3d9d4
mov edx, dword [esi]
add edi, 4
add esi, 4
sub eax, 4
mov dword [edi - 4], edx
jmp 0xa3d513
mov eax, dword [ebp + 0xe9c]
test eax, eax
setne al
jmp 0xa3d048
mov dword [edi], 0
sub ebx, 4
add edi, 4
jmp 0xa3d8a2
mov word [edi], 0
sub ebx, 2
add edi, 2
jmp 0xa3d896
mov byte [edi], 0
dec ebx
inc edi
jmp 0xa3d88a
mov ebx, 0x20
mov ecx, edi
mov dword [esp + 0x40], ebx
xor ebx, ebx
jmp 0xa3c8c0
movzx eax, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], ax
jmp 0xa3db13
movzx eax, byte [eax]
inc edi
inc esi
lea ecx, [edx - 1]
mov byte [edi - 1], al
jmp 0xa3db07
movzx eax, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], ax
jmp 0xa3dc30
movzx eax, byte [esi]
lea edi, [ebx + 1]
inc esi
mov byte [ebx], al
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
jmp 0xa3dc24