Function at 0x1011f840
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1022ba89
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x102d2084]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x5c], 0
mov eax, dword [0x103aaa1c]
test al, 1
jne 0x1011f9bc
or eax, 1
mov dword [0x103aaa1c], eax
mov dword [ebp - 4], 0
mov ebx, dword [0x1036cbb0]
cmp ebx, dword [0x1036cbb4]
je 0x1011f8e4
nop
mov eax, dword [ebx]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x1011f8d9
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x1011f8b3
xor edx, edx
test ecx, ecx
je 0x1011f8d9
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1011f8c0
cmp esi, 0xfda73f75
je 0x1011f8f7
add ebx, 4
cmp ebx, dword [0x1036cbb4]
jne 0x1011f8a0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x103aaa4c], eax
jmp 0x1011f9c1
mov eax, dword [ebp - 0x44]
xor esi, esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], esi
cmp dword [eax + 4], esi
jle 0x1011f998
xor ecx, ecx
mov dword [ebp - 0x50], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1011f941
cmp dword [ecx + 4], 0
jle 0x1011f941
push 0
mov edx, 0x2c4cfdac
call fcn.10138e60
add esp, 4
test eax, eax
je 0x1011f93e
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x48], esi
mov eax, dword [ebp - 0x44]
mov edi, dword [ebx]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x1011f950
xor edx, edx
test ecx, ecx
je 0x1011f97c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1011f960
cmp esi, 0x2c4cfdac
je 0x1011f9a8
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
inc edx
mov esi, dword [ebp - 0x48]
add ecx, 0x3c
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], ecx
cmp edx, dword [eax + 4]
jl 0x1011f910
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov dword [0x103aaa4c], eax
jmp 0x1011f9c1
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x48]
mov dword [0x103aaa4c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1011f9c1
mov eax, dword [0x103aaa4c]
mov ecx, dword [ebp + 8]
xorps xmm0, xmm0
movss xmm1, dword [eax + ecx]
mov eax, dword [0x10bbb620]
add eax, 0x91761abb
xor eax, 0xfd410b50
mov eax, dword [eax + 0xf0]
subss xmm1, dword [eax + 0x10]
comiss xmm0, xmm1
movss dword [ebp - 0x58], xmm1
jae 0x10120352
mov edx, dword [0x10370f48]
test dl, 1
jne 0x1011fb26
or edx, 1
mov dword [0x10370f48], edx
mov dword [ebp - 4], 1
mov ebx, dword [0x1036cbb0]
cmp ebx, dword [0x1036cbb4]
je 0x1011fa65
mov eax, dword [ebx]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x1011fa5a
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011fa34
xor edx, edx
test ecx, ecx
je 0x1011fa5a
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011fa41
cmp edi, 0x1eee87cc
je 0x1011fa7f
add ebx, 4
cmp ebx, dword [0x1036cbb4]
jne 0x1011fa21
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [0x10370f48]
mov dword [0x10370f8c], ecx
jmp 0x1011fb2c
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x50], esi
cmp dword [eax + 4], esi
jle 0x1011fb14
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1011fac9
cmp dword [ecx + 4], 0
jle 0x1011fac9
push 0
mov edx, 0x559d81af
call fcn.10138e60
add esp, 4
test eax, eax
je 0x1011fac6
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x48]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011fad2
xor edx, edx
test ecx, ecx
je 0x1011fafc
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011fae0
cmp edi, 0x559d81af
je 0x1011fb1b
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
inc edx
mov esi, dword [ebp - 0x44]
add ecx, 0x3c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
cmp edx, dword [eax + 4]
jl 0x1011fa98
mov ecx, esi
jmp 0x1011fa67
mov ecx, dword [ebx + 0x2c]
add ecx, dword [ebp - 0x44]
jmp 0x1011fa67
mov ecx, dword [0x10370f8c]
mov eax, dword [0x10bbb620]
mov ebx, dword [ebp + 8]
add eax, 0x91761abb
xor eax, 0xfd410b50
add ebx, ecx
mov dword [ebp - 0x60], ebx
mov eax, dword [eax + 0x134]
mov dword [ebp - 0x64], eax
test dl, 1
jne 0x1011fbd0
or edx, 1
mov dword [0x10370f48], edx
mov dword [ebp - 4], 2
mov ebx, dword [0x1036cbb0]
cmp ebx, dword [0x1036cbb4]
je 0x1011fbbb
mov eax, dword [ebx]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x1011fbb0
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011fb86
xor edx, edx
test ecx, ecx
je 0x1011fbb0
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011fb93
cmp edi, 0x1eee87cc
je 0x1011fcac
add ebx, 4
cmp ebx, dword [0x1036cbb4]
jne 0x1011fb73
xor ecx, ecx
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
mov dword [0x10370f8c], ecx
mov dword [ebp - 4], 0xffffffff
movss xmm2, dword [ebx]
movss xmm0, dword [ebx + 4]
subss xmm0, dword [eax + ecx + 4]
subss xmm2, dword [eax + ecx]
movss xmm1, dword [ebx + 8]
subss xmm1, dword [eax + ecx + 8]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.1000da70
mulss xmm0, xmm0
mulss xmm0, dword [0x102bab2c]
call fcn.1021cc3b
mov eax, dword [0x103aaa28]
movaps xmm3, xmm0
mulss xmm3, dword [0x102baa98]
test al, 1
jne 0x1011fe1e
or eax, 1
mov dword [0x103aaa28], eax
mov dword [ebp - 4], 3
mov ebx, dword [0x1036cbb0]
cmp ebx, dword [0x1036cbb4]
je 0x1011fc98
nop
mov eax, dword [ebx]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x1011fc8d
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011fc63
xor edx, edx
test ecx, ecx
je 0x1011fc8d
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011fc70
cmp edi, 0xfda73f75
je 0x1011fd56
add ebx, 4
cmp ebx, dword [0x1036cbb4]
jne 0x1011fc50
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov dword [0x103aaa48], ecx
jmp 0x1011fe24
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x50], esi
cmp dword [eax + 4], esi
jle 0x1011fd44
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1011fcf6
cmp dword [ecx + 4], 0
jle 0x1011fcf6
push 0
mov edx, 0x559d81af
call fcn.10138e60
add esp, 4
test eax, eax
je 0x1011fcf3
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x48]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011fd00
xor edx, edx
test ecx, ecx
je 0x1011fd2c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011fd10
cmp edi, 0x559d81af
je 0x1011fd4b
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
inc edx
mov esi, dword [ebp - 0x44]
add ecx, 0x3c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
cmp edx, dword [eax + 4]
jl 0x1011fcc5
mov ecx, esi
jmp 0x1011fbbd
mov ecx, dword [ebx + 0x2c]
add ecx, dword [ebp - 0x44]
jmp 0x1011fbbd
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x50], esi
cmp dword [eax + 4], esi
jle 0x1011fdf8
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
nop
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1011fda1
cmp dword [ecx + 4], 0
jle 0x1011fda1
push 0
mov edx, 0xca9f868d
call fcn.10138e60
add esp, 4
test eax, eax
je 0x1011fd9e
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x48]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011fdb0
xor edx, edx
test ecx, ecx
je 0x1011fddc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011fdc0
cmp edi, 0xca9f868d
je 0x1011fe09
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
inc edx
mov esi, dword [ebp - 0x44]
add ecx, 0x3c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
cmp edx, dword [eax + 4]
jl 0x1011fd70
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
mov dword [0x103aaa48], ecx
jmp 0x1011fe24
mov ecx, dword [ebx + 0x2c]
add ecx, dword [ebp - 0x44]
mov dword [0x103aaa48], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1011fe24
mov ecx, dword [0x103aaa48]
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x54]
mov cl, byte [ecx + eax]
mov eax, dword [edi]
mov byte [eax + 0xab6], cl
mov eax, dword [0x103aaa18]
test al, 1
jne 0x1011ff82
or eax, 1
mov dword [0x103aaa18], eax
mov dword [ebp - 4], 4
mov ebx, dword [0x1036cbb0]
cmp ebx, dword [0x1036cbb4]
je 0x1011fea4
nop
mov eax, dword [ebx]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x1011fe99
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011fe73
xor edx, edx
test ecx, ecx
je 0x1011fe99
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011fe80
cmp edi, 0xfda73f75
je 0x1011feba
add ebx, 4
cmp ebx, dword [0x1036cbb4]
jne 0x1011fe60
mov edi, dword [ebp - 0x54]
xor eax, eax
mov dword [0x103aaa24], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1011ff87
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x50], esi
cmp dword [eax + 4], esi
jle 0x1011ff58
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1011ff04
cmp dword [ecx + 4], 0
jle 0x1011ff04
push 0
mov edx, 0x74e01381
call fcn.10138e60
add esp, 4
test eax, eax
je 0x1011ff01
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x48]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1011ff10
xor edx, edx
test ecx, ecx
je 0x1011ff3c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1011ff20
cmp edi, 0x74e01381
je 0x1011ff6b
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
inc edx
mov esi, dword [ebp - 0x44]
add ecx, 0x3c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
cmp edx, dword [eax + 4]
jl 0x1011fed3
mov edi, dword [ebp - 0x54]
mov eax, esi
mov dword [0x103aaa24], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1011ff87
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x54]
mov dword [0x103aaa24], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1011ff87
mov eax, dword [0x103aaa24]
mov ecx, dword [ebp + 8]
cmp dword [eax + ecx], 0xffffffff
mov eax, dword [edi]
setne cl
mov byte [eax + 0xab5], cl
cvttss2si ecx, dword [ebp - 0x58]
mov eax, dword [edi]
mov dword [eax + 0xab8], ecx
mov eax, dword [0x10bbb620]
add eax, 0x91761abb
xor eax, 0xfd410b50
mov eax, dword [eax + 0x134]
mov dword [ebp - 0x58], eax
mov eax, dword [0x1037439c]
test al, 1
jne 0x10120112
or eax, 1
mov dword [0x1037439c], eax
mov dword [ebp - 4], 5
mov ebx, dword [0x1036cbb0]
cmp ebx, dword [0x1036cbb4]
je 0x10120034
mov eax, dword [ebx]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x10120029
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10120000
xor edx, edx
test ecx, ecx
je 0x10120029
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10120010
cmp edi, 0x72e242a1
je 0x1012004a
add ebx, 4
cmp ebx, dword [0x1036cbb4]
jne 0x1011ffe8
mov edi, dword [ebp - 0x54]
xor eax, eax
mov dword [0x103743d0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10120117
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x50], esi
cmp dword [eax + 4], esi
jle 0x101200e8
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x10120094
cmp dword [ecx + 4], 0
jle 0x10120094
push 0
mov edx, 0x8937152d
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10120091
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x48]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x101200a0
xor edx, edx
test ecx, ecx
je 0x101200cc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x101200b0
cmp edi, 0x8937152d
je 0x101200fb
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
inc edx
mov esi, dword [ebp - 0x44]
add ecx, 0x3c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
cmp edx, dword [eax + 4]
jl 0x10120063
mov edi, dword [ebp - 0x54]
mov eax, esi
mov dword [0x103743d0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10120117
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x54]
mov dword [0x103743d0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10120117
mov eax, dword [0x103743d0]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx + eax]
test eax, eax
jle 0x10120155
movaps xmm2, xmm3
movd xmm0, eax
mulss xmm2, dword [0x102ba73c]
movaps xmm1, xmm3
cvtdq2ps xmm0, xmm0
subss xmm1, xmm2
mulss xmm1, dword [0x102ba73c]
comiss xmm1, xmm0
jbe 0x10120152
addss xmm0, xmm0
movaps xmm2, xmm3
subss xmm2, xmm0
movaps xmm3, xmm2
mov eax, dword [edi]
cvttss2si ecx, xmm3
mov dword [eax + 0xabc], ecx
mov eax, dword [0x103aaa3c]
test al, 1
jne 0x101202b2
or eax, 1
mov dword [0x103aaa3c], eax
mov dword [ebp - 4], 6
mov ebx, dword [0x1036cbb0]
cmp ebx, dword [0x1036cbb4]
je 0x101201d4
nop dword [eax + eax]
mov eax, dword [ebx]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x101201c9
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101201a3
xor edx, edx
test ecx, ecx
je 0x101201c9
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101201b0
cmp esi, 0xfda73f75
je 0x101201ea
add ebx, 4
cmp ebx, dword [0x1036cbb4]
jne 0x10120190
mov edi, dword [ebp - 0x54]
xor eax, eax
mov dword [0x103aaa38], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x101202b7
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x50], esi
cmp dword [eax + 4], esi
jle 0x10120288
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x10120234
cmp dword [ecx + 4], 0
jle 0x10120234
push 0
mov edx, 0xe027ac16
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10120231
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x48]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10120240
xor edx, edx
test ecx, ecx
je 0x1012026c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10120250
cmp edi, 0xe027ac16
je 0x1012029b
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
inc edx
mov esi, dword [ebp - 0x44]
add ecx, 0x3c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
cmp edx, dword [eax + 4]
jl 0x10120203
mov edi, dword [ebp - 0x54]
mov eax, esi
mov dword [0x103aaa38], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x101202b7
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x54]
mov dword [0x103aaa38], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x101202b7
mov eax, dword [0x103aaa38]
mov ecx, dword [ebp + 8]
cmp dword [eax + ecx], 0
jne 0x101202e7
lea eax, [ebp - 0x40]
mov ecx, 0x10363be0
push eax
call fcn.10042f80
mov dword [ebp - 4], 7
lea edx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
mov ebx, 5
cmovae edx, dword [ebp - 0x40]
jmp 0x1012030c
lea eax, [ebp - 0x28]
mov ecx, 0x10363c18
push eax
call fcn.10042f80
mov dword [ebp - 4], 8
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
mov ebx, 0xa
cmovae edx, dword [ebp - 0x28]
mov ecx, edx
mov dword [ebp - 0x5c], ebx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10120314
sub ecx, esi
push ecx
mov ecx, dword [edi]
push edx
add ecx, 0xac0
call fcn.10045fd0
test bl, 2
je 0x1012033c
lea ecx, [ebp - 0x28]
and ebx, 0xfffffffd
call fcn.1002b860
test bl, 1
je 0x10120349
lea ecx, [ebp - 0x40]
call fcn.1002b860
mov eax, dword [edi]
mov byte [eax + 0xab4], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101f065f
mov esp, ebp
pop ebp
ret 4