Function at 0x10098d90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
movzx eax, byte [ecx]
sub esp, 0x24
dec eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, edx
cmp eax, 7
ja case.default.0x1009868e
jmp dword [eax*4 + 0x10098d70]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x24], eax
test esi, esi
je 0x100986c3
test ebx, ebx
je 0x100986c3
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
je 0x100986fd
mov eax, dword [edi]
test eax, eax
je 0x100986ea
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x1c]
add esp, 4
test ecx, ecx
jle 0x100986f7
call fcn.10071140
mov dword [edi], eax
jmp 0x100986fd
mov dword [edi], 0
mov edx, ebx
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], ebx
mov ecx, dword [edi]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], eax
test edx, edx
jle 0x10098d56
lea edx, [esi*4]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0
test esi, esi
jle 0x10098753
mov edx, dword [ebp - 0x24]
add edx, eax
movsx eax, byte [edx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
add edx, ebx
mov eax, dword [ebp - 0x14]
mov esi, dword [edi + 4]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, esi
jl 0x10098731
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
inc eax
add ecx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
cmp eax, dword [edi + 8]
jl 0x10098721
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
mov dword [ebp - 0x24], eax
test esi, esi
je 0x10098798
test ebx, ebx
je 0x10098798
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x100987d2
mov eax, dword [edi]
test eax, eax
je 0x100987bf
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x100987cc
call fcn.10071140
mov dword [edi], eax
jmp 0x100987d2
mov dword [edi], 0
mov edx, ebx
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], ebx
mov ecx, dword [edi]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x20], eax
test edx, edx
jle 0x10098d56
lea edx, [esi*4]
mov dword [ebp - 0x18], edx
nop word [eax + eax]
mov dword [ebp - 0x1c], 0
test esi, esi
jle 0x10098832
mov edx, dword [ebp - 0x24]
add edx, eax
movzx eax, byte [edx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
add edx, ebx
mov eax, dword [ebp - 0x1c]
mov esi, dword [edi + 4]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, esi
jl 0x10098810
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
inc eax
add ecx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ecx
cmp eax, dword [edi + 8]
jl 0x10098800
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
test esi, esi
je 0x10098877
test ebx, ebx
je 0x10098877
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x100988b1
mov eax, dword [edi]
test eax, eax
je 0x1009889e
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x100988ab
call fcn.10071140
mov dword [edi], eax
jmp 0x100988b1
mov dword [edi], 0
mov ecx, ebx
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], ebx
mov edx, dword [edi]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jle 0x10098d56
lea ecx, [esi*4]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
test esi, esi
jle 0x10098901
lea eax, [ebx + ebx]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
movsx eax, word [ebx]
lea edx, [edx + 4]
add ebx, dword [ebp - 0x18]
inc ecx
mov dword [edx - 4], eax
mov esi, dword [edi + 4]
cmp ecx, esi
jl 0x100988e4
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x24]
inc eax
add dword [ebp - 0x14], 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp eax, dword [edi + 8]
jl 0x100988d5
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
test esi, esi
je 0x1009894b
test ebx, ebx
je 0x1009894b
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x10098985
mov eax, dword [edi]
test eax, eax
je 0x10098972
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x1009897f
call fcn.10071140
mov dword [edi], eax
jmp 0x10098985
mov dword [edi], 0
mov ecx, ebx
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], ebx
mov edx, dword [edi]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jle 0x10098d56
lea ecx, [esi*4]
mov dword [ebp - 0x24], ecx
nop dword [eax]
xor ecx, ecx
test esi, esi
jle 0x100989dd
lea eax, [ebx + ebx]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
nop
movzx eax, word [ebx]
lea edx, [edx + 4]
add ebx, dword [ebp - 0x18]
inc ecx
mov dword [edx - 4], eax
mov esi, dword [edi + 4]
cmp ecx, esi
jl 0x100989c0
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x24]
inc eax
add dword [ebp - 0x14], 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp eax, dword [edi + 8]
jl 0x100989b0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
test esi, esi
je 0x10098a27
test ebx, ebx
je 0x10098a27
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x10098a61
mov eax, dword [edi]
test eax, eax
je 0x10098a4e
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x10098a5b
call fcn.10071140
mov dword [edi], eax
jmp 0x10098a61
mov dword [edi], 0
xor eax, eax
mov dword [edi + 4], esi
mov dword [edi + 8], ebx
mov edx, dword [edi]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
test ebx, ebx
jle 0x10098d56
lea ecx, [esi*4]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
test esi, esi
jle 0x10098ab2
lea eax, [ebx*4]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx]
lea edx, [edx + 4]
add ebx, dword [ebp - 0x18]
inc ecx
mov dword [edx - 4], eax
mov esi, dword [edi + 4]
cmp ecx, esi
jl 0x10098a96
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x24]
inc eax
add dword [ebp - 0x14], 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp eax, dword [edi + 8]
jl 0x10098a83
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
test esi, esi
je 0x10098afc
test ebx, ebx
je 0x10098afc
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x10098b36
mov eax, dword [edi]
test eax, eax
je 0x10098b23
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x10098b30
call fcn.10071140
mov dword [edi], eax
jmp 0x10098b36
mov dword [edi], 0
mov ecx, ebx
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], ebx
mov edx, dword [edi]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jle 0x10098d56
lea ecx, [esi*4]
mov dword [ebp - 0x24], ecx
nop word [eax + eax]
xor ecx, ecx
test esi, esi
jle 0x10098b8f
lea eax, [ebx*4]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx]
lea edx, [edx + 4]
add ebx, dword [ebp - 0x18]
inc ecx
mov dword [edx - 4], eax
mov esi, dword [edi + 4]
cmp ecx, esi
jl 0x10098b73
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x24]
inc eax
add dword [ebp - 0x14], 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp eax, dword [edi + 8]
jl 0x10098b60
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
test esi, esi
je 0x10098bd9
test ebx, ebx
je 0x10098bd9
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x10098c13
mov eax, dword [edi]
test eax, eax
je 0x10098c00
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x10098c0d
call fcn.10071140
mov dword [edi], eax
jmp 0x10098c13
mov dword [edi], 0
mov ecx, ebx
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], ebx
mov edx, dword [edi]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jle 0x10098d56
lea ecx, [esi*4]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
test esi, esi
jle 0x10098c6e
lea eax, [ebx*4]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
nop word [eax + eax]
cvttss2si eax, dword [ebx]
add ebx, dword [ebp - 0x18]
lea edx, [edx + 4]
inc ecx
mov dword [edx - 4], eax
mov esi, dword [edi + 4]
cmp ecx, esi
jl 0x10098c50
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x24]
inc eax
add dword [ebp - 0x14], 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp eax, dword [edi + 8]
jl 0x10098c37
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
test esi, esi
je 0x10098cb8
test ebx, ebx
je 0x10098cb8
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, closesocket
cdq
idiv ebx
cmp esi, eax
jg 0x10098d68
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, ebx
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x10098cf2
mov eax, dword [edi]
test eax, eax
je 0x10098cdf
push dword [eax - 4]
call fcn.101fcf0c
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x10098cec
call fcn.10071140
mov dword [edi], eax
jmp 0x10098cf2
mov dword [edi], 0
mov ecx, ebx
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], ebx
mov edx, dword [edi]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jle 0x10098d56
lea ecx, [esi*4]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
test esi, esi
jle 0x10098d43
lea eax, [ebx*8]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
cvttsd2si eax, qword [ebx]
add ebx, dword [ebp - 0x18]
lea edx, [edx + 4]
inc ecx
mov dword [edx - 4], eax
mov esi, dword [edi + 4]
cmp ecx, esi
jl 0x10098d25
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x24]
inc eax
add dword [ebp - 0x14], 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp eax, dword [edi + 8]
jl 0x10098d12
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1004cf20
nop dword [eax]
xchg ebp, eax
xchg byte [ecx], cl
adc byte [edx - 0x79], ch
or dword [eax], edx
dec ecx
mov byte [ecx], cl
adc byte [0xf9100989], bl
mov dword [ecx], ecx
adc dh, cl
mov cl, byte [ecx]
adc byte [ebx - 0x75eff675], ch
mov word [ecx], cs
adc byte [ebp - 0x75], dl
push ebp
mov ebp, esp
movzx eax, byte [ecx]
sub esp, 0x2c
dec eax
push ebx
push esi
mov esi, edx
push edi
cmp eax, 7
ja case.default.0x10098da8
jmp dword [eax*4 + 0x100991ac]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1009b4c0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
xor edi, edi
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x10098dfb
mov eax, dword [ebp + 0xc]
add eax, 0xfffffffe
nop dword [eax]
test eax, eax
je 0x10098de6
add edi, eax
sub ecx, 1
jne 0x10098de0
test edi, edi
je 0x10098dfb
cmp edi, 0x2aaaaaaa
jg 0x100991a6
mov eax, dword [esi + 4]
lea ebx, [edi + edi*2]
imul eax, dword [esi + 8]
cmp ebx, eax
je 0x10098e2f
mov eax, dword [esi]
test eax, eax
je 0x10098e1a
push dword [eax - 4]
call fcn.101fcf0c
add esp, 4
test ebx, ebx
jle 0x10098e29
mov ecx, ebx
call fcn.10071140
mov dword [esi], eax
jmp 0x10098e2f
mov dword [esi], 0
mov edx, dword [ebp + 8]
mov dword [esi + 4], edi
xor edi, edi
mov dword [esi + 8], 3
mov dword [ebp - 4], edi
test edx, edx
je 0x1009916a
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffffe
xor eax, eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov dword [ebp - 8], ebx
test ecx, ecx
je 0x10098ec4
mov edx, dword [ebp - 0x14]
add edx, eax
mov dword [ebp - 0xc], edx
movzx eax, byte [edx]
mov ecx, dword [esi]
mov dword [ecx + edi*4], eax
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
add eax, edi
mov edx, dword [esi]
movzx ecx, byte [ecx + ebx + 1]
xor ebx, 1
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
add eax, ebx
add eax, dword [ebp - 0x10]
mov edx, dword [esi + 4]
mov edi, dword [esi]
movzx ecx, byte [eax + ecx + 1]
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
lea eax, [eax + edx*2]
mov edx, dword [ebp - 0xc]
mov dword [edi + eax*4], ecx
inc edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
inc eax
mov edi, dword [ebp - 4]
add ecx, 0xfffffffe
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
cmp eax, ecx
jb 0x10098e65
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
add eax, dword [ebp + 0xc]
sub edx, 1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], edx
jne 0x10098e54
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1009b630
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
xor edi, edi
mov eax, dword [ecx + 4]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x10098f2b
mov eax, dword [ebp + 0xc]
mov ecx, ebx
add eax, 0xfffffffe
nop word [eax + eax]
test eax, eax
je 0x10098f16
add edi, eax
sub ecx, 1
jne 0x10098f10
test edi, edi
je 0x10098f2b
cmp edi, 0x2aaaaaaa
jg 0x100991a6
mov eax, dword [esi + 4]
lea ecx, [edi + edi*2]
imul eax, dword [esi + 8]
cmp ecx, eax
je 0x10098f60
mov eax, dword [esi]
test eax, eax
je 0x10098f4d
push dword [eax - 4]
call fcn.101fcf0c
add esp, 4
lea ecx, [edi + edi*2]
test ecx, ecx
jle 0x10098f5a
call fcn.10071140
mov dword [esi], eax
jmp 0x10098f60
mov dword [esi], 0
xor edx, edx
mov dword [esi + 4], edi
mov dword [esi + 8], 3
mov dword [ebp - 4], edx
test ebx, ebx
je 0x1009916a
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x14], eax
lea edi, [ecx - 2]
add ecx, ecx
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], ecx
xor ebx, ebx
mov dword [ebp - 0xc], ebx
test edi, edi
je 0x1009900a
mov dword [ebp - 8], eax
mov edi, ecx
mov dword [ebp - 0x18], ecx
movzx eax, word [edi]
mov ecx, dword [esi]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
add eax, ebx
mov edi, dword [esi]
xor ebx, 1
inc dword [ebp - 8]
movzx ecx, word [ecx + eax*2 + 2]
mov eax, dword [ebp - 4]
add eax, dword [esi + 4]
mov dword [edi + eax*4], ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
add eax, ebx
add eax, dword [ebp - 0x14]
mov edx, dword [esi + 4]
mov edi, dword [esi]
movzx ecx, word [ecx + eax*2 + 2]
mov eax, dword [ebp - 4]
lea eax, [eax + edx*2]
mov edx, dword [ebp - 4]
mov dword [edi + eax*4], ecx
inc edx
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x18]
inc eax
add edi, 2
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], edi
cmp eax, dword [ebp - 0x1c]
jb 0x10098fa1
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
add eax, dword [ebp + 0xc]
add ecx, dword [ebp - 0x28]
sub dword [ebp - 0x24], 1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], ecx
jne 0x10098f90
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1009b7f0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
xor edi, edi
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ebx
test ebx, ebx
je 0x10099073
mov eax, dword [ebp + 0xc]
mov ecx, ebx
add eax, 0xfffffffe
test eax, eax
je 0x1009905e
add edi, eax
sub ecx, 1
jne 0x10099058
test edi, edi
je 0x10099073
cmp edi, 0x2aaaaaaa
jg 0x100991a6
mov eax, dword [esi + 4]
lea ecx, [edi + edi*2]
imul eax, dword [esi + 8]
cmp ecx, eax
je 0x100990a8
mov eax, dword [esi]
test eax, eax
je 0x10099095
push dword [eax - 4]
call fcn.101fcf0c
add esp, 4
lea ecx, [edi + edi*2]
test ecx, ecx
jle 0x100990a2
call fcn.10071140
mov dword [esi], eax
jmp 0x100990a8
mov dword [esi], 0
xor edx, edx
mov dword [esi + 4], edi
mov dword [esi + 8], 3
mov dword [ebp - 0x10], edx
test ebx, ebx
je 0x1009916a
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 4], eax
lea edi, [ecx - 2]
shl ecx, 2
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], ecx
nop dword [eax]
xor ebx, ebx
mov dword [ebp - 0xc], ebx
test edi, edi
je 0x10099154
mov dword [ebp - 8], eax
mov eax, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [eax]
mov ecx, dword [esi]
mov dword [ecx + edx*4], eax
add edx, dword [esi + 4]
mov ecx, dword [ebp - 8]
mov edi, dword [esi]
add ecx, ebx
mov eax, dword [ebp - 0x14]
xor ebx, 1
inc dword [ebp - 8]
mov eax, dword [eax + ecx*4 + 4]
mov dword [edi + edx*4], eax
mov edi, dword [ebp - 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0xc]
mov edx, dword [esi]
add eax, ebx
add eax, dword [ebp - 4]
lea ecx, [edi + ecx*2]
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 4]
mov edi, dword [ebp - 0xc]
mov dword [edx + ecx*4], eax
inc edi
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
inc edx
add eax, 4
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x24], eax
cmp edi, dword [ebp - 0x20]
jb 0x100990f1
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
add eax, dword [ebp + 0xc]
add ecx, dword [ebp - 0x28]
sub dword [ebp - 0x18], 1
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], ecx
jne 0x100990e0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1009b990
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1009bb70
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1004cf20
nop
scasd eax, dword es:[edi]
lea ecx, [ecx]
adc ah, al
lea ecx, [ecx]
adc bl, bl
mov cs, word [ecx]
adc al, dh
mov cs, word [ecx]
adc byte [ecx], ch
nop
or dword [eax], edx
nop
or dword [eax], edx
jae 0x10099157
or dword [eax], edx
mov byte [ecx - 0x3333eff7], dl
int3