Function at 0x62c4331
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov esi, dword [esp + 0x94]
and dword [esi + 0x28], 0
and dword [esi + 0x24], 0
mov al, byte [esp + 0x9c]
mov ecx, dword [esi]
cmp byte [esi + 0x36], 4
jne 0x62c435f
mov byte [esi + 0x36], al
cmp al, 4
je 0x62c4362
jmp 0x62c4366
mov byte [esi + 0x36], al
test ecx, ecx
je 0x62c437e
push 0xfffffffffffffffe
pop ecx
mov eax, dword [esp + 0x90]
mov dword [eax], ecx
and dword [eax + 4], 0
mov dword [esi], ecx
and dword [eax + 8], 0
jmp 0x62c43b9
mov edx, dword [esp + 0x98]
cmp dword [esi + 0x1c], 0
jne 0x62c4391
cmp byte [esi + 0x35], 0
je 0x62c43c1
mov edi, esi
lea esi, [esp + 0x64]
mov ecx, esi
push edi
call fcn.062c422b
pop eax
mov eax, dword [esi]
mov dword [edi], eax
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x90]
mov dword [eax + 8], ecx
movsd xmm0, qword [esi]
movsd qword [eax], xmm0
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0xb4fff
and ecx, dword [esi + 8]
cmp ecx, 0x4001
jne 0x62c48c5
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x62c5011
mov edx, dword [esi + 0x4c]
mov edi, dword [esi + 0x50]
mov eax, edi
mov dword [esp], edi
and edi, 0x7fff
mov ecx, dword [ecx + 0x10]
lea ebx, [esi + 0x3c]
lea eax, [esi + 0x58]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 0x2c], ecx
mov eax, ecx
sub eax, dword [esp + 0xc]
ja 0x62c4433
test edx, edx
je 0x62c5199
cmp byte [esi + 0x36], 0
je 0x62c5199
mov dword [esp + 0x24], edi
mov ecx, dword [esp]
lea edi, [edx + ecx]
mov ecx, 0x1000
mov dword [esp + 0x28], edx
sub ecx, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x62c455f
and edi, 0x7fff
mov esi, 0x8000
sub esi, edi
cmp esi, ecx
mov dword [esp + 0x20], ecx
cmovae esi, ecx
mov ecx, dword [ebx]
mov eax, 0x20000
add ecx, eax
lea eax, [esi + edi]
mov edx, edi
push 0x6329424
mov dword [esp + 0x38], eax
push eax
call fcn.062c243c
pop ecx
pop ecx
mov dword [esp + 4], eax
mov ebp, edx
mov ebx, dword [esp + 0xc]
lea edx, [esi + ebx]
mov ecx, ebx
mov dword [esp + 0x1c], edx
push 0x6329434
push dword [esp + 0x30]
push dword [esp + 0x44]
call fcn.062af5bc
add esp, 0xc
push 0x6329444
push edx
push eax
push ebp
push dword [esp + 0x14]
call fcn.062a209a
add esp, 0x14
cmp edi, 0x101
jae 0x62c453d
mov ebp, 0x101
sub ebp, edi
cmp esi, ebp
cmovb ebp, esi
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov eax, 0x20000
add ecx, eax
lea eax, [edi + ebp]
add eax, 0x8000
or edi, 0x8000
mov edx, edi
push 0x6329454
push eax
call fcn.062c243c
pop ecx
pop ecx
mov dword [esp + 4], eax
mov edi, edx
add ebp, ebx
mov ecx, ebx
mov edx, ebp
push 0x6329464
push dword [esp + 0x30]
push dword [esp + 0x44]
call fcn.062af5bc
add esp, 0xc
push 0x6329474
push edx
push eax
push edi
push dword [esp + 0x14]
call fcn.062a209a
add esp, 0x14
mov ecx, dword [esp + 0x20]
sub ecx, esi
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 8]
jmp 0x62c4451
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x28]
mov eax, 0x8000
sub eax, edx
mov ecx, dword [esi + 0x54]
cmp eax, ecx
cmovae eax, ecx
mov dword [esi + 0x54], eax
cmp edx, 0xfff
ja 0x62c4593
cmp byte [esi + 0x36], 0
mov ebx, dword [esp]
jne 0x62c47ea
jmp 0x62c519c
mov ebx, dword [esp]
jmp 0x62c47ea
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x24]
call fcn.062c3143
mov esi, eax
and esi, 0xffffff
mov edx, esi
shr edx, 0x11
mov ecx, eax
and ecx, 0xfff
xor ecx, edx
mov ebp, dword [esp + 0x94]
mov edx, dword [ebp + 0x3c]
movzx edi, word [edx + ecx*2 + 0x10000]
mov ebx, dword [esp]
mov word [edx + ecx*2 + 0x10000], bx
sub ebx, edi
movzx ecx, bx
cmp ecx, dword [ebp + 0x54]
ja 0x62c459b
and edi, 0x7fff
mov ecx, dword [esp + 8]
mov dword [esp + 4], eax
mov edx, edi
call fcn.062c3143
mov edx, dword [esp + 4]
and eax, 0xffffff
cmp esi, eax
jne 0x62c46fc
mov eax, dword [esp + 0x24]
mov ecx, edx
lea esi, [eax + 3]
add edi, 3
push 0xfffffffffffffffd
pop ebp
mov eax, edx
cmp ebp, 0xfffffefd
je 0x62c4668
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 8]
mov ecx, ebp
mov edx, esi
call fcn.062c318b
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], edx
mov ecx, ebp
mov edx, edi
call fcn.062c318b
xor edx, dword [esp + 0x1c]
xor eax, dword [esp + 0x34]
mov ecx, eax
or ecx, edx
jne 0x62c4672
add esi, 8
add edi, 8
mov ebp, dword [esp + 0x20]
add ebp, 0xfffffff8
mov eax, dword [esp + 4]
jmp 0x62c461d
mov esi, 0x102
test bx, bx
jmp 0x62c46a2
bsf esi, eax
bsf ecx, edx
add ecx, 0x20
test eax, eax
cmovne ecx, esi
shr ecx, 3
mov esi, ecx
mov ebp, dword [esp + 0x20]
sub esi, ebp
cmp esi, 2
mov edx, dword [esp + 4]
jbe 0x62c46fc
cmp bx, 0x2000
jb 0x62c46a6
mov eax, edx
sub ebp, ecx
cmp ebp, 0xfffffffd
mov edx, eax
je 0x62c46fc
mov eax, dword [esp + 0x18]
cmp esi, eax
cmovae esi, eax
dec ebx
lea edx, [esi - 3]
mov edi, dword [esp + 0x14]
mov ecx, edi
mov dword [esp + 0x20], edx
call fcn.062c3247
mov ecx, edi
mov edx, ebx
call fcn.062c3247
movzx ebp, bh
mov ecx, edi
mov edx, ebp
call fcn.062c3247
mov ecx, edi
call fcn.062c326e
shr byte [eax], 1
mov ecx, edi
call fcn.062c326e
or byte [eax], 0x80
cmp bx, 0x200
jae 0x62c471a
movzx eax, bx
lea eax, [eax + 0x6328e34]
jmp 0x62c472c
mov ebp, dword [esp + 0x14]
mov ecx, ebp
mov ebx, edx
call fcn.062c3247
mov ecx, ebp
call fcn.062c326e
shr byte [eax], 1
movzx eax, bl
xor esi, esi
inc esi
jmp 0x62c4768
movzx eax, bp
test bx, bx
js 0x62c51ca
lea eax, [eax + 0x6328d24]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x94]
mov ecx, dword [ecx + 0x38]
inc word [ecx + eax*2 + 0x240]
cmp edx, 0x100
jae 0x62c51ae
movzx eax, word [esi + esi + 0x63289fe]
cmp eax, 0x120
jae 0x62c51be
mov edi, dword [esp + 0x94]
mov ecx, dword [edi + 0x38]
inc word [ecx + eax*2]
mov ecx, ebp
call fcn.062c3290
add dword [edi + 0x10060], esi
mov ebx, dword [esp]
add ebx, esi
mov eax, dword [edi + 0x54]
add eax, esi
mov ecx, 0x8000
cmp eax, ecx
cmovae eax, ecx
mov dword [edi + 0x54], eax
mov eax, dword [esp + 0x24]
add eax, esi
and eax, 0x7fff
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x18]
sub edx, esi
cmp dword [edi + 0x10058], 0xfff8
jbe 0x62c47ea
mov esi, edi
mov dword [edi + 0x4c], edx
mov dword [edi + 0x50], ebx
mov ecx, edi
mov edx, dword [esp + 0x98]
push 0
call fcn.062c3c97
pop ecx
test eax, eax
jne 0x62c5030
test edx, edx
jne 0x62c5020
mov edx, dword [esi + 0x4c]
mov ebx, dword [esi + 0x50]
mov dword [esp], ebx
mov dword [esp + 0x18], edx
cmp edx, 3
ja 0x62c459b
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x62c48ba
mov eax, dword [esi + 0x3c]
mov ebx, edi
movzx edi, byte [eax + edi + 0x20000]
inc dword [esi + 0x10060]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, ebp
mov edx, edi
call fcn.062c3247
mov ecx, ebp
call fcn.062c326e
shr byte [eax], 1
mov ecx, ebp
call fcn.062c3290
mov eax, dword [esi + 0x38]
inc word [eax + edi*2]
mov edi, ebx
mov ebx, dword [esp + 8]
inc dword [esp]
mov eax, dword [esi + 0x54]
inc eax
mov ecx, 0x8000
cmp eax, ecx
cmovae eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x54], eax
inc edi
and edi, 0x7fff
dec ecx
cmp dword [esi + 0x10058], 0xfff9
jb 0x62c480d
mov dword [esi + 0x4c], ecx
mov eax, dword [esp]
mov dword [esi + 0x50], eax
mov ecx, esi
mov edx, dword [esp + 0x98]
push 0
call fcn.062c3c97
pop ecx
test eax, eax
jne 0x62c5132
test edx, edx
jne 0x62c5020
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
mov dword [esp], eax
jmp 0x62c480d
xor edx, edx
mov ecx, dword [esp + 0x2c]
jmp 0x62c4419
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x62c5011
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x2c], eax
lea ebx, [esi + 0x3c]
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x50]
mov dword [esp + 0x18], eax
mov al, byte [esi + 0x37]
mov byte [esp + 0x13], al
mov eax, dword [esi + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
lea edi, [esi + 0x58]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0xc]
ja 0x62c493a
cmp dword [esp + 0x1c], 0
je 0x62c503f
cmp byte [esi + 0x36], 0
je 0x62c503f
mov edx, 0x102
mov edi, dword [esp + 0x1c]
sub edx, edi
cmp eax, edx
cmovb edx, eax
test edx, edx
je 0x62c4a43
mov eax, dword [esi + 0x54]
add eax, edi
cmp eax, 1
jbe 0x62c4a43
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x18]
lea eax, [edi + edx]
add eax, 0xfffffffe
mov dword [esp], eax
mov ecx, 0x7fff
and eax, ecx
mov ecx, dword [ebx]
movzx esi, byte [ecx + eax + 0x20000]
lea eax, [edi + edx]
dec eax
mov ebp, 0x7fff
and eax, ebp
movzx eax, byte [ecx + eax + 0x20000]
lea ebp, [edi + edx]
shl esi, 5
xor esi, eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
lea edx, [eax + ecx]
mov edi, dword [esp]
mov dword [esp + 0x24], edx
push 0x6329394
push dword [esp + 0x30]
push dword [esp + 0x44]
call fcn.062af5bc
add esp, 0xc
test edx, edx
je 0x62c4b4f
mov dword [esp], edx
and ebp, 0x7fff
mov edx, eax
mov cl, byte [eax]
mov eax, ebp
mov ebp, dword [ebx]
mov byte [ebp + eax + 0x20000], cl
cmp eax, 0x101
jae 0x62c49fe
mov ebp, eax
mov ebx, dword [esp + 8]
mov ebx, dword [ebx]
mov byte [ebx + eax + 0x28000], cl
mov ebx, dword [esp + 8]
movzx ecx, cl
shl esi, 5
and esi, 0x7fe0
movzx ecx, cx
xor ecx, esi
mov esi, edi
and esi, 0x7fff
mov ebp, dword [ebx]
movzx ebx, word [ebp + ecx*2 + 0x10000]
mov word [ebp + esi*2], bx
mov ebp, eax
mov ebx, dword [esp + 8]
mov esi, dword [ebx]
mov word [esi + ecx*2 + 0x10000], di
mov eax, edx
inc eax
inc ebp
inc edi
mov edx, dword [esp]
dec edx
mov esi, ecx
jmp 0x62c49c4
mov ecx, dword [esp + 0xc]
add edx, ecx
mov dword [esp + 0x28], edx
push 0x6329384
push dword [esp + 0x30]
push dword [esp + 0x44]
call fcn.062af5bc
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x18]
lea ecx, [edi + eax]
mov dword [esp], ecx
add eax, edi
add eax, 0xfffffffe
mov dword [esp + 4], eax
xor ecx, ecx
mov eax, edi
cmp dword [esp + 0x24], ecx
je 0x62c4b3f
mov edx, dword [esp + 0x20]
mov bl, byte [edx + ecx]
mov edx, dword [esp]
lea edi, [edx + ecx]
and edi, 0x7fff
mov edx, dword [esp + 8]
mov ebp, dword [edx]
mov byte [ebp + edi + 0x20000], bl
cmp edi, 0x101
jae 0x62c4ac0
mov edx, dword [esp + 8]
mov ebp, dword [edx]
mov byte [ebp + edi + 0x28000], bl
mov edi, dword [esi + 0x54]
lea ebp, [eax + ecx]
add edi, ebp
inc edi
cmp edi, 2
jbe 0x62c4b39
movzx eax, bl
mov dword [esp + 0x34], eax
mov eax, dword [esp + 4]
lea edi, [eax + ecx]
mov ebx, edi
mov eax, 0x7fff
and ebx, eax
mov edx, dword [esp + 8]
mov ebp, dword [edx]
mov eax, dword [esp]
add eax, ecx
dec eax
mov esi, 0x7fff
and eax, esi
movzx eax, byte [ebp + eax + 0x20000]
shl eax, 5
xor eax, dword [esp + 0x34]
movzx esi, byte [ebp + ebx + 0x20000]
and esi, 0x1f
shl esi, 0xa
xor esi, eax
movzx eax, word [ebp + esi*2 + 0x10000]
mov word [ebp + ebx*2], ax
mov eax, dword [edx]
mov word [eax + esi*2 + 0x10000], di
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x94]
inc ecx
jmp 0x62c4a81
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 8]
jmp 0x62c4b66
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x94]
mov dword [esp + 0x1c], eax
mov ecx, 0x8000
sub ecx, eax
mov eax, dword [esi + 0x54]
cmp ecx, eax
cmovae ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp], ecx
mov dword [esi + 0x54], ecx
cmp eax, 0x101
mov edi, dword [esp + 0x30]
ja 0x62c4b98
cmp byte [esi + 0x36], 0
je 0x62c5043
mov eax, dword [esp + 0x14]
test eax, eax
mov edx, eax
push 2
pop eax
cmove edx, eax
mov ebp, dword [esp + 0x18]
and ebp, 0x7fff
mov eax, dword [esi + 8]
test eax, 0x90000
je 0x62c4c1b
mov dword [esp + 4], 0
cmp dword [esp], 0
je 0x62c4e03
and eax, 0x80000
jne 0x62c4e03
mov eax, dword [esp + 0x18]
dec eax
and eax, 0x7fff
mov ecx, dword [ebx]
mov bl, byte [ecx + eax + 0x20000]
add ecx, 0x20000
mov eax, dword [esp + 0x1c]
add eax, ebp
mov edx, ebp
push 0x63293a4
push eax
call fcn.062c243c
pop ecx
pop ecx
xor ecx, ecx
cmp edx, ecx
je 0x62c4db6
cmp byte [eax + ecx], bl
jne 0x62c4db4
inc ecx
jmp 0x62c4c07
mov eax, dword [esp + 0x1c]
mov ecx, 0x102
cmp eax, ecx
cmovb ecx, eax
mov dword [esp + 4], 0
mov dword [esp + 0x4c], ecx
cmp ecx, edx
jbe 0x62c4e03
xor eax, eax
cmp edx, 0x20
setae al
mov eax, dword [esi + eax*4 + 0x40]
mov dword [esp + 0x50], eax
lea eax, [ebp - 1]
mov dword [esp + 0x54], eax
mov edi, edx
add edx, ebp
dec edx
mov ecx, ebx
call fcn.062c31d2
mov word [esp + 0x20], ax
mov ecx, ebx
mov edx, ebp
call fcn.062c31d2
mov edx, edi
mov word [esp + 0x46], ax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x24], eax
lea eax, [ebp + 2]
mov dword [esp + 0x58], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ebp
mov esi, ebp
lea eax, [edx - 1]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x50]
dec eax
je 0x62c4df0
mov dword [esp + 0x50], eax
push 4
pop ebx
dec ebx
je 0x62c4c98
mov eax, dword [esp + 0x24]
movzx esi, word [eax + esi*2]
test esi, esi
je 0x62c4df0
mov eax, dword [esp + 0x18]
sub eax, esi
movzx edi, ax
cmp edi, dword [esp]
ja 0x62c4df0
and esi, 0x7fff
mov ebp, edx
mov eax, dword [esp + 0x34]
lea edx, [eax + esi]
mov ecx, dword [esp + 8]
call fcn.062c31d2
mov edx, ebp
cmp ax, word [esp + 0x20]
jne 0x62c4caa
test edi, edi
je 0x62c4df0
mov ecx, dword [esp + 8]
mov edx, esi
call fcn.062c31d2
mov edx, ebp
cmp ax, word [esp + 0x46]
jne 0x62c4c98
mov dword [esp + 0x48], edi
lea edi, [esi + 2]
push 0xfffffffffffffffe
pop eax
mov edx, dword [esp + 0x58]
cmp eax, 0xfffffefe
mov ebx, dword [esp + 8]
je 0x62c4dd5
mov dword [esp + 0x28], eax
mov ecx, ebx
mov dword [esp + 0x5c], edx
call fcn.062c318b
mov dword [esp + 0x60], eax
mov ecx, ebx
mov ebx, edx
mov edx, edi
call fcn.062c318b
xor edx, ebx
xor eax, dword [esp + 0x60]
mov ecx, eax
or ecx, edx
jne 0x62c4d66
mov edx, dword [esp + 0x5c]
add edx, 8
add edi, 8
mov eax, dword [esp + 0x28]
add eax, 0xfffffff8
jmp 0x62c4d1a
bsf ecx, eax
bsf ebx, edx
add ebx, 0x20
test eax, eax
cmovne ebx, ecx
shr ebx, 3
sub ebx, dword [esp + 0x28]
mov edx, ebp
cmp ebx, ebp
mov edi, dword [esp + 0x48]
jbe 0x62c4c98
mov eax, dword [esp + 0x4c]
cmp eax, ebx
cmovb ebx, eax
jbe 0x62c4dea
mov eax, dword [esp + 0x54]
lea edx, [ebx + eax]
mov ecx, dword [esp + 8]
call fcn.062c31d2
mov word [esp + 0x20], ax
mov edx, ebx
mov dword [esp + 4], edi
jmp 0x62c4c91
mov edx, ecx
xor eax, eax
inc eax
mov dword [esp + 4], eax
cmp edx, 2
mov ebx, dword [esp + 8]
ja 0x62c4e03
mov eax, dword [esi + 8]
mov dword [esp + 4], 0
xor edx, edx
jmp 0x62c4e29
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x94]
jmp 0x62c4dfb
mov edx, ebx
mov dword [esp + 4], edi
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x38]
mov eax, dword [esi + 8]
cmp edx, 3
jne 0x62c4e29
mov edx, edi
cmp dword [esp + 4], 0x1fff
ja 0x62c4e95
mov ecx, eax
and ecx, 0x20000
jne 0x62c4e95
push 3
pop ecx
mov dword [esp], ecx
jmp 0x62c4e3a
mov dword [esp], edx
mov edx, edi
bt eax, 0x11
jae 0x62c4e3a
cmp dword [esp], 6
jb 0x62c4e95
cmp ebp, dword [esp + 4]
je 0x62c4e95
mov edi, ebp
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x62c4ee4
cmp dword [esp], ebp
jbe 0x62c4ec6
mov ecx, dword [esi + 0x38]
movzx eax, byte [esp + 0x13]
mov ebp, edx
push eax
call fcn.062c40e8
pop eax
mov edx, dword [esp]
cmp edx, 0x80
jb 0x62c4f12
mov ecx, dword [esi + 0x38]
mov edi, edx
mov edx, ebp
push dword [esp + 4]
push edi
call fcn.062c411b
pop eax
pop ecx
mov dword [esp + 0x14], 0
mov eax, edi
jmp 0x62c4f56
mov edi, ebp
mov ebp, dword [esp + 0x14]
test ebp, ebp
jne 0x62c4ec6
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edi + 0x20000]
mov edi, edx
push eax
call fcn.062c40e8
pop eax
mov dword [esp + 0x14], 0
xor eax, eax
inc eax
jmp 0x62c4f56
mov ecx, dword [esi + 0x38]
mov edi, edx
push dword [esp + 0x40]
push ebp
call fcn.062c411b
pop eax
pop ecx
dec ebp
mov eax, ebp
mov dword [esp + 0x14], 0
jmp 0x62c4f56
cmp dword [esp + 4], 0
je 0x62c4e9f
cmp byte [esi + 0x34], 0
je 0x62c4f28
mov ecx, dword [esi + 0x38]
mov edi, edx
push dword [esp + 4]
mov ebp, dword [esp + 4]
push ebp
call fcn.062c411b
pop eax
pop ecx
mov dword [esp + 0x14], 0
mov eax, ebp
jmp 0x62c4f56
mov eax, dword [ebx]
mov al, byte [eax + edi + 0x20000]
mov byte [esp + 0x13], al
xor eax, eax
inc eax
mov dword [esp + 0x14], edx
jmp 0x62c4f4e
bt eax, 0x10
jb 0x62c4ef1
cmp dword [esp], 0x80
jae 0x62c4ef1
mov eax, dword [ebx]
mov al, byte [eax + edi + 0x20000]
mov byte [esp + 0x13], al
xor eax, eax
inc eax
mov ecx, dword [esp]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x40], ecx
sub dword [esp + 0x1c], eax
jb 0x62c51da
add dword [esp + 0x18], eax
add eax, dword [esi + 0x54]
mov ecx, 0x8000
cmp eax, ecx
cmovae eax, ecx
mov dword [esi + 0x54], eax
mov ecx, dword [esi + 0x10058]
mov eax, dword [esi + 0x10060]
cmp eax, 0x7c00
jbe 0x62c4fab
cmp ecx, 0xfff8
ja 0x62c4fb7
imul ecx, ecx, 0x73
shr ecx, 7
cmp ecx, eax
jae 0x62c4fb7
mov eax, dword [esi + 8]
mov ecx, 0x80000
and eax, ecx
je 0x62c491b
jmp 0x62c4fb7
cmp ecx, 0xfff8
jbe 0x62c491b
mov eax, dword [esp + 0xc]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x50], eax
mov ecx, esi
mov edx, dword [esp + 0x98]
push 0
call fcn.062c3c97
pop ecx
neg eax
mov eax, 0
sbb eax, eax
or eax, edx
je 0x62c491b
mov al, byte [esp + 0x13]
mov byte [esi + 0x37], al
mov eax, dword [esp + 0x40]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0xc], eax
jg 0x62c5069
jmp 0x62c513c
mov dword [esp + 0xc], 0
xor ecx, ecx
jmp 0x62c50b4
mov eax, dword [esp + 0xc]
mov dword [esi + 0x24], eax
test edx, edx
jg 0x62c5069
jmp 0x62c513c
mov eax, dword [esp + 0xc]
mov dword [esi + 0x24], eax
or dword [esi], 0xffffffff
jmp 0x62c513c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x50], eax
mov al, byte [esp + 0x13]
mov byte [esi + 0x37], al
mov eax, dword [esp + 0x40]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x14], eax
test byte [esi + 9], 0x30
je 0x62c50ad
mov eax, dword [esp + 0x94]
mov esi, dword [eax + 0x20]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
push 0x63294b4
push dword [esp + 0x10]
call fcn.062bf11c
pop ecx
pop ecx
push edx
push eax
push esi
mov esi, dword [esp + 0xa0]
call fcn.062c55a3
add esp, 0xc
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0xc], eax
mov al, byte [esi + 0x36]
mov ecx, dword [esp + 0x2c]
test al, al
je 0x62c50c6
cmp ecx, dword [esp + 0xc]
jne 0x62c50c6
mov ecx, dword [esi + 0x4c]
or ecx, dword [esi + 0x1c]
je 0x62c50da
mov edi, esi
lea esi, [esp + 0x70]
mov ecx, esi
mov edx, dword [esp + 0x98]
jmp 0x62c4399
movzx eax, al
mov ecx, esi
mov edx, dword [esp + 0x98]
push eax
call fcn.062c3c97
pop ecx
test eax, eax
je 0x62c5106
or dword [esi], 0xffffffff
mov edx, dword [esp + 0x90]
or dword [edx], 0xffffffff
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
jmp 0x62c514e
test edx, edx
js 0x62c515b
mov al, byte [esi + 0x36]
cmp al, 4
sete byte [esi + 0x35]
cmp al, 3
jne 0x62c50c6
mov eax, dword [esi + 0x3c]
xor ecx, ecx
cmp ecx, 0x10000
je 0x62c5179
and word [eax + ecx + 0x10000], 0
add ecx, 2
jmp 0x62c511c
or dword [esi], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov ecx, dword [esi + 0x28]
mov edx, dword [esp + 0x90]
mov dword [edx], eax
mov eax, dword [esp + 0xc]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov eax, edx
jmp 0x62c43b9
mov eax, dword [esi]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
mov esi, dword [esp + 0x90]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov eax, esi
mov dword [esi + 8], edx
jmp 0x62c43b9
mov eax, dword [esi + 0x3c]
xor ecx, ecx
cmp ecx, 0x10000
je 0x62c5190
and word [eax + ecx], 0
add ecx, 2
jmp 0x62c517e
and dword [esi + 0x54], 0
jmp 0x62c50c6
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
mov dword [esi + 0x24], eax
mov dword [esi + 0x4c], edx
mov dword [esi + 0x50], ebx
jmp 0x62c5069
push 0x6329404
push 0x100
push edx
call fcn.0630eba0
push 0x6329414
push 0x120
jmp 0x62c51d4
push 0x63293f4
push 0x80
push eax
call fcn.0630eba0
push 0x63293e4
push 0x2f
push 0x63293b4
call fcn.0630eaf0
int3