Function at 0x41f13e
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x493aa6
call fcn.00493440
sub esp, 0x170
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x48], 8
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], 0x7ad95e17
mov dword [ebp - 0x2c], 0x4438bea1
mov dword [ebp - 0x14], ebx
jmp 0x41f184
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x104], 5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x41f173
dec dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], edx
mov eax, 0x61928c17
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x41f1df
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], bl
je 0x41f1dc
push ebx
push ebx
push 0xf23
push ebx
push 0x15de
push ebx
push 0x1f31
push 0x768
call dword [0xaa127c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x41f1b6
mov dword [ebp - 0x14], 3
xor edi, edi
inc edi
cmp dword [ebp - 0x14], ebx
jl 0x41f34f
mov dword [ebp - 0x1c], 0x4bc662a2
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 3
jg 0x41f312
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 3
cmp dword [ebp - 0x2c], ebx
jl 0x41f30a
mov dword [ebp - 0x18], 0x3ab6
cmp dword [ebp - 0x18], 0x3ae8
jle 0x41f298
mov esi, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x20], 0x7e5f
mov ecx, ebx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], 0x6b30
mov eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x11c]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x41f261
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x11c]
call fcn.0041c762
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x30]
jne 0x41f247
add eax, esi
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x20]
jne 0x41f23b
inc esi
cmp esi, 0x32f9
jl 0x41f231
mov dword [ebp - 0x28], 0x193e0566
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0x3705
jge 0x41f2b6
push 0xa8ab84
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x41f2df
mov dword [ebp - 0x28], ebx
jmp 0x41f2fc
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], 0
je 0x41f2f9
push 0x183d
push ebx
call dword [0xaa13a8]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jle 0x41f2e4
dec dword [ebp - 0x2c]
jmp 0x41f216
inc dword [ebp - 0x1c]
jmp 0x41f202
mov dword [ebp - 0x1c], ebx
jmp 0x41f325
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x80], 0xfffffffd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x41f317
mov dword [ebp - 0x1c], ebx
jmp 0x41f341
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + eax*4 - 0x80]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x80], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jle 0x41f330
dec dword [ebp - 0x14]
jmp 0x41f1ef
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
push 4
lea ecx, [ebp - 0xbc]
call fcn.0041c40c
mov dword [ebp - 0x14], 0xe19d29be
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], 0x45cc
push 4
lea ecx, [ebp - 0xb0]
call fcn.0041c40c
mov dword [ebp + 8], ebx
jmp 0x41f395
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xbc]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp + 8]
cmp dword [ebp + 8], 4
jl 0x41f385
mov dword [ebp + 8], ebx
jmp 0x41f3b3
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xb0]
mov dword [eax + ecx*4], 0x7289fff1
inc dword [ebp + 8]
cmp dword [ebp + 8], 4
jl 0x41f3a0
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], ebx
jl 0x41f3de
cmp dword [ebp - 0x14], ebx
jne 0x41f3de
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x41f3d9
call dword [0xaa13d8]
dec dword [ebp - 0x14]
jns 0x41f3c5
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xbc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
xor edx, edx
add ecx, 0x6fd5
mov eax, dword [ebp - 0xb0]
mov dword [eax], ecx
setne dl
mov eax, dword [ebp - 0x14]
sub eax, edx
cmp eax, 0xfff6
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, 0x493e
setle cl
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setge dl
add edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0xb0]
call fcn.0041c810
lea ecx, [ebp - 0xbc]
call fcn.0041c810
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
mov dword [ebp + 0xc], ebx
push 4
lea ecx, [ebp - 0xc8]
call fcn.0041c40c
mov dword [ebp + 8], ebx
mov dword [ebp + 8], 0xfffffff9
mov dword [ebp - 0x30], 0x7fe7
cmp dword [ebp - 0x30], 0x807a
jle 0x41f4f2
mov edi, ebx
mov dword [ebp - 0x34], ebx
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp + 8], edi
mov ecx, esi
mov esi, edi
sar esi, cl
mov edi, ebx
mov ecx, ebx
mov dword [ebp + 8], ecx
mov dword [ebp - 0x18], 0x3208
mov eax, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
mov ecx, dword [ebp + 8]
add ecx, edi
mov dword [ebp + 8], ecx
dec dword [ebp - 0x18]
jne 0x41f4aa
inc edi
cmp edi, 0x27d0
jl 0x41f49e
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x38c0
mov edi, dword [ebp - 0x34]
jl 0x41f490
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0x30fd
jl 0x41f48b
xor edi, edi
inc edi
mov dword [ebp - 4], 2
cmp dword [ebp - 0x30], 0x7f15
jge 0x41f511
mov edx, 0xa8abd8
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x41f53a
mov dword [ebp + 8], ebx
jmp 0x41f552
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc8]
mov dword [eax + ecx*4], 0x2f80c341
inc dword [ebp + 8]
cmp dword [ebp + 8], 4
jl 0x41f53f
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x41f56b
push ebx
push ebx
push ebx
push ebx
call dword [0xaa1258]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0xc8]
mov edx, dword [ebp + 0xc]
add edx, 0x5950
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp edx, eax
setl cl
imul eax, ecx, 0x18a5
mov dword [esi + 8], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov eax, dword [esi + 8]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 8], eax
lea ecx, [ebp - 0xc8]
call fcn.0041c810
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0xc], 0xb26bdde0
mov dword [ebp + 8], 0xe2949f4f
mov dword [ebp + 8], edi
mov dword [ebp + 8], 5
mov dword [ebp + 8], 0xfffffffa
mov dword [ebp + 0xc], ebx
jmp 0x41f608
mov dword [ebp + 8], 5
mov dword [ebp + 8], 0xfffffffb
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x41f602
push ebx
push ebx
push 0x11cc
push ebx
call dword [0xaa13cc]
mov dword [ebp + 8], edi
dec dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0xfffffffe
jle 0x41f5dd
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], 0x6918
cmp dword [ebp - 0x18], 0x6c16
jle 0x41f69f
mov edi, ebx
mov dword [ebp + 0x14], ebx
mov esi, ebx
mov dword [ebp + 0x10], ebx
mov eax, ebx
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], edi
mov ecx, esi
sar edi, cl
mov dword [ebp + 8], edi
mov dword [ebp - 0x20], ebx
mov esi, edi
mov ecx, eax
shl esi, cl
mov edi, ebx
mov eax, esi
and eax, edi
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc edi
cmp edi, 0x376
jl 0x41f648
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
cmp eax, 0x1004
mov edi, dword [ebp + 8]
jl 0x41f63d
mov esi, dword [ebp + 0x10]
inc esi
mov dword [ebp + 0x10], esi
cmp esi, 0x7028
mov edi, dword [ebp + 0x14]
jl 0x41f62e
inc edi
mov dword [ebp + 0x14], edi
cmp edi, 0x5634
jl 0x41f629
push 0x4fe
call dword [0xaa137c]
xor edi, edi
inc edi
mov dword [ebp - 4], 4
cmp dword [ebp - 0x18], 0x6864
jge 0x41f6be
mov edx, 0xa8ac08
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x41f6e7
mov dword [ebp + 0xc], 0x41b2
cmp dword [ebp + 0xc], 0x439c
jle 0x41f73a
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp + 8], ebx
mov eax, esi
cdq
idiv ecx
xor edx, edi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x5dbe
jl 0x41f700
inc esi
cmp esi, 0x16a0
jl 0x41f6fb
inc edi
cmp edi, 0x225c
jl 0x41f6f9
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0xa4]
call fcn.0041c40c
mov dword [ebp - 4], 6
cmp dword [ebp + 0xc], 0x4180
jge 0x41f765
mov edx, 0xa8ac9c
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x41f78e
mov dword [ebp + 8], ebx
jmp 0x41f7a3
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xa4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jl 0x41f793
mov dword [ebp + 8], ebx
jmp 0x41f7bb
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x5c], 0x7c7ce53d
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x41f7ad
mov dword [ebp - 0x5c], ebx
cmp dword [ebp - 0x5c], ebx
jl 0x41f7d8
mov dword [ebp + 8], 0x4c8d3c89
dec dword [ebp + 8]
dec dword [ebp - 0x5c]
jns 0x41f7c9
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
lea ecx, [ebp - 0xa4]
call fcn.0041c810
push 2
lea ecx, [ebp - 0x8c]
call fcn.0041c40c
mov dword [ebp + 8], ebx
mov dword [ebp + 8], ebx
jmp 0x41f813
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x8c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x41f803
mov dword [ebp + 8], ebx
cmp dword [ebp + 8], 2
jge 0x41f8c6
mov dword [ebp + 0xc], 0x4ee2
cmp dword [ebp + 0xc], 0x4f9d
jle 0x41f866
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc edi
cmp edi, 0x3b88
jl 0x41f83a
inc esi
cmp esi, 0x2cce
jl 0x41f838
push ebx
call dword [0xaa1360]
xor edi, edi
inc edi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], 0x901f2c29
mov dword [ebp - 4], 8
cmp dword [ebp + 0xc], 0x4e5b
jge 0x41f895
mov edx, 0xa8ace0
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x41f8be
inc dword [ebp + 8]
jmp 0x41f81c
mov dword [ebp + 8], ebx
jmp 0x41f8e7
mov dword [ebp + 0xc], 0xffffffff
mov dword [ebp + 0xc], 4
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x8c]
mov dword [eax], ecx
inc dword [ebp + 8]
cmp dword [ebp + 8], 0x17
jle 0x41f8cb
lea ecx, [ebp - 0x8c]
call fcn.0041c810
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x34], eax
mov dword [ebp + 0xc], 0x3ae35568
mov dword [ebp + 0xc], 0xffffffe6
jmp 0x41f931
mov dword [ebp + 0x10], 0x905d
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x41f929
push 0xb0f
call dword [0xaa1094]
cmp dword [ebp + 0x10], ebx
jne 0x41f937
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0xffffffef
jl 0x41f90e
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x6c], eax
push 2
lea ecx, [ebp - 0x54]
call fcn.0041c40c
mov dword [ebp + 0xc], 0x1c29000d
mov dword [ebp + 8], ebx
jmp 0x41f963
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0x13b91020
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x41f953
mov dword [ebp + 0xc], edi
cmp dword [ebp + 0xc], ebx
jl 0x41fc99
mov dword [ebp + 0x14], 0x62751c76
mov dword [ebp + 0x1c], 0xfffffffc
mov dword [ebp + 0x14], edi
cmp dword [ebp + 0x14], ebx
jl 0x41fc91
mov dword [ebp + 8], 0xb61bab59
mov dword [ebp + 8], ebx
jmp 0x41f9f8
mov dword [ebp + 0x10], 6
mov edx, dword [ebp + 8]
sub edx, dword [ebp + 0xc]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp + 8]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp + 0x14]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp + 0x10], ecx
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
xor edx, edx
cmp ecx, eax
setle dl
xor ecx, ecx
mov eax, dword [ebp - 0x54]
cmp dword [eax + esi*4], edx
setne cl
mov dword [ebp + 0x1c], ecx
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jle 0x41f99b
mov dword [ebp - 0x20], 0x4343
cmp dword [ebp - 0x20], 0x4578
jle 0x41fa39
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc edi
cmp edi, 0x3f7d
jl 0x41fa11
inc esi
cmp esi, 0x27ed
jl 0x41fa0f
xor edi, edi
inc edi
mov dword [ebp + 0x1c], ebx
cmp dword [ebp + 0x1c], edi
jg 0x41fc41
mov dword [ebp - 0x18], 0x1bc7
cmp dword [ebp - 0x18], 0x1f5a
jle 0x41fac2
mov edi, ebx
mov esi, ebx
mov eax, esi
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x20], 0x821
mov dword [ebp + 8], ebx
mov edx, edi
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x30], edx
mov eax, edx
mov ecx, dword [ebp + 8]
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
cmp eax, 0x3ce0
mov edx, dword [ebp - 0x30]
jl 0x41fa71
mov eax, dword [ebp + 0x10]
dec eax
mov dword [ebp + 0x10], eax
dec dword [ebp + 0x20]
jne 0x41fa65
inc esi
cmp esi, 0x2157
jl 0x41fa59
inc edi
cmp edi, 0x715f
jl 0x41fa57
push 0x1f55
call dword [0xaa1350]
xor edi, edi
inc edi
mov dword [ebp + 8], ebx
cmp dword [ebp + 8], edi
jg 0x41fbe1
mov dword [ebp + 0x10], 0x95e0e2bf
mov dword [ebp + 0x20], 0x3ac
cmp dword [ebp + 0x20], 0x3df
jle 0x41fb34
mov esi, ebx
mov ecx, ebx
mov dword [ebp + 0x10], ebx
mov eax, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x164]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x41fb08
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x164]
call fcn.0041c762
mov ecx, dword [ebp + 0x10]
inc ecx
mov dword [ebp + 0x10], ecx
cmp ecx, 0x4dd2
jl 0x41faec
inc esi
cmp esi, 0x7654
jl 0x41fae7
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov dword [ebp - 4], 0xa
cmp dword [ebp + 0x20], 0x1cf
jge 0x41fb5e
push 0xa8adf0
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x41fb87
mov dword [ebp + 0x10], ebx
jmp 0x41fbd4
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x54]
cmp dword [eax + ecx*4], 0xffffffff
jne 0x41fba9
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x54]
cmp dword [eax + ecx*4], ebx
je 0x41fbac
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
xor edx, edx
mov eax, dword [ebp - 0x54]
cmp dword [eax + ecx*4], 0x618d
setg dl
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x54]
mov dword [eax + esi*4], ecx
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], edi
jle 0x41fb8c
inc dword [ebp + 8]
jmp 0x41fac5
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x18], 0x1a81
jge 0x41fc00
mov edx, 0xa8adcc
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x41fc29
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x41fc39
push ebx
call dword [0xaa1288]
inc dword [ebp + 0x1c]
jmp 0x41fa3c
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x20], 0x4233
jge 0x41fc60
mov edx, 0xa8ad70
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x41fc89
dec dword [ebp + 0x14]
jmp 0x41f986
dec dword [ebp + 0xc]
jmp 0x41f96c
lea ecx, [ebp - 0x54]
call fcn.0041c810
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x30], eax
mov dword [ebp + 0x10], 0x3df603fa
mov dword [ebp + 0xc], 0x33037736
mov dword [ebp - 0x18], 0x9918c6a8
mov dword [ebp + 0x24], 0x69ff
cmp dword [ebp + 0x24], 0x6b19
jle 0x41fd47
mov eax, ebx
mov dword [ebp + 0x14], ebx
mov esi, ebx
mov dword [ebp + 0x20], ebx
cdq
idiv esi
mov eax, edx
mov dword [ebp + 8], eax
mov dword [ebp + 0x1c], 0x6f1b
mov esi, ebx
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x134]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x41fd01
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x134]
call fcn.0041c762
inc esi
cmp esi, 0x657d
mov eax, dword [ebp + 8]
jl 0x41fce7
inc eax
mov dword [ebp + 8], eax
dec dword [ebp + 0x1c]
jne 0x41fce5
mov esi, dword [ebp + 0x20]
inc esi
mov dword [ebp + 0x20], esi
cmp esi, 0x371a
mov eax, dword [ebp + 0x14]
jl 0x41fcd6
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 0x730b
jl 0x41fcd1
mov dword [ebp + 8], 0xb42b8ff
mov dword [ebp - 4], 0x10
cmp dword [ebp + 0x24], 0x6995
jge 0x41fd69
push 0xa8aea8
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x41fd92
mov dword [ebp + 0x1c], 0xce570888
mov dword [ebp + 0x14], 6
mov dword [ebp + 0x20], 0x75c2
mov dword [ebp + 8], ebx
jmp 0x41fdba
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x3c], 0x68c
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x41fdac
mov dword [ebp + 8], ebx
jmp 0x41fdd3
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x40], 0xfffffff7
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jl 0x41fdc5
mov dword [ebp + 8], ebx
jmp 0x41fdea
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0xe4], edi
inc dword [ebp + 8]
cmp dword [ebp + 8], 4
jl 0x41fddd
mov dword [ebp + 8], ebx
jmp 0x41fe06
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x98], 0x821d
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x41fdf5
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x3c]
jle 0x41fe43
cmp dword [ebp + 0xc], ebx
mov ecx, edi
jne 0x41fe45
mov ecx, ebx
mov eax, dword [ebp + 0x10]
xor edx, edx
cmp eax, ecx
setle dl
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, 4
setge dl
mov eax, dword [ebp + 0x10]
xor ecx, ecx
cmp eax, edx
setg cl
cmp ecx, 0xfffd
jae 0x41fe8e
mov dword [ebp + 0xc], ebx
jmp 0x41fe86
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x3c], 0xfff8
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 2
jl 0x41fe78
jmp 0x41feaa
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x41feaa
push ebx
push ebx
push 0x84e
push 0x169c
push ebx
call dword [0xaa13d4]
mov eax, dword [ebp - 0x98]
dec eax
add eax, dword [ebp + 0x14]
neg eax
sbb eax, eax
neg eax
mov ecx, dword [ebp - 0x98]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x40]
add ecx, eax
mov eax, dword [ebp - 0x40]
add eax, ecx
mov ecx, dword [ebp + 0xc]
imul ecx, eax
test ecx, ecx
je 0x41fede
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x98]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0xe4]
inc dword [ebp - 0xe4]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + 0x20]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + 0xc]
sub eax, 0x3a25c5db
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x3c]
jl 0x41ffbe
push edi
lea ecx, [ebp - 0x68]
call fcn.0041c40c
mov dword [ebp + 8], ebx
jmp 0x41ff45
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0xfffc
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jl 0x41ff35
mov ecx, dword [ebp + 0x14]
neg ecx
sbb ecx, ecx
neg ecx
mov edx, dword [ebp - 0x68]
mov eax, dword [edx]
add eax, ecx
jne 0x41ff6d
cmp dword [ebp - 0x94], ebx
mov edx, dword [ebp - 0x68]
jne 0x41ff6d
cmp dword [edx], ebx
mov eax, ebx
je 0x41ff6f
mov eax, edi
xor ecx, ecx
cmp dword [edx], eax
setg cl
xor eax, eax
cmp ecx, 6
setne al
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, 0x55b5
setl dl
mov eax, dword [ebp - 0x68]
mov esi, dword [eax]
mov eax, dword [ebp + 0x14]
sub edx, eax
xor ecx, ecx
test edx, edx
setle cl
mov eax, esi
sub eax, ecx
xor ecx, ecx
cmp eax, 0xffffffff
setge cl
imul ecx, esi
add ecx, dword [ebp - 0x38]
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x68]
call fcn.0041c810
jmp 0x420025
mov dword [ebp + 8], 7
mov dword [ebp + 0xc], 0xc06be8e6
imul eax, dword [ebp + 8], 6
test eax, eax
je 0x420003
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp eax, 0x8e06
setne cl
sub ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x38]
sub ecx, eax
mov eax, dword [ebp + 0x1c]
imul eax, ecx
sub eax, 0xfffffff7
neg eax
sbb eax, eax
inc eax
add eax, dword [ebp + 8]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 8]
xor edx, edx
cmp ecx, eax
setne dl
neg edx
jne 0x42001b
cmp dword [ebp + 0xc], ebx
mov ecx, ebx
je 0x42001d
mov ecx, edi
mov eax, dword [ebp - 0x40]
add eax, ecx
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x70], eax
mov dword [ebp + 0xc], 0x1824a8c6
mov dword [ebp + 8], 0x6ccb0362
mov dword [ebp - 0x20], 0xe4b28306
mov dword [ebp + 8], 0x9d01078
push 4
lea ecx, [ebp - 0xfc]
call fcn.0041c40c
push 3
lea ecx, [ebp - 0xd4]
call fcn.0041c40c
mov dword [ebp + 8], ebx
jmp 0x420079
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xfc]
mov dword [eax + ecx*4], 0x2b000cd9
inc dword [ebp + 8]
cmp dword [ebp + 8], 4
jl 0x420066
mov dword [ebp + 8], ebx
jmp 0x420097
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xd4]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x420084
mov dword [ebp + 0xc], ebx
cmp dword [ebp + 0xc], 0xf
je 0x4202c1
mov dword [ebp + 0x10], 0xffffffff
mov dword [ebp + 8], 0x327439cb
push 2
lea ecx, [ebp - 0xf0]
call fcn.0041c40c
mov dword [ebp + 8], 0x3700
mov dword [ebp + 8], ebx
jmp 0x4200e4
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xf0]
mov dword [eax + ecx*4], 0xdb85613
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x4200d1
mov dword [ebp + 0x10], 0xffffffe7
cmp dword [ebp + 0x10], 0xfffffff0
je 0x420200
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x18], 0x23a1
cmp dword [ebp - 0x18], 0x252e
jle 0x4201a8
mov esi, ebx
mov dword [ebp + 0x28], ebx
mov ecx, ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x14], ebx
mov eax, esi
cdq
idiv ecx
mov ecx, edx
mov dword [ebp + 0x20], ecx
mov esi, ebx
mov eax, ebx
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x1c], 0x1dfb
xor eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x14c]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x420151
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x14c]
call fcn.0041c762
mov eax, dword [ebp + 0x14]
add eax, esi
mov dword [ebp + 0x14], eax
dec dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
jne 0x420137
inc esi
cmp esi, 0x3689
jl 0x42012b
mov ecx, dword [ebp + 0x24]
inc ecx
mov dword [ebp + 0x24], ecx
cmp ecx, 0x634a
mov esi, dword [ebp + 0x28]
jl 0x42011c
inc esi
mov dword [ebp + 0x28], esi
cmp esi, 0x2cf4
jl 0x420117
push ebx
push ebx
call dword [0xaa11f4]
cmp byte [ebp + 0xb], 0
je 0x4201b4
call dword [0xaa1240]
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x18], 0x2297
jge 0x4201cf
push 0xa8af04
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4201f8
inc dword [ebp + 0x10]
jmp 0x4200f1
mov dword [ebp + 0x10], 0x63bc
cmp dword [ebp + 0x10], 0x6591
jle 0x420262
mov esi, ebx
mov ecx, ebx
mov dword [ebp + 8], ebx
mov eax, esi
cdq
idiv ecx
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x17c]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x420236
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x17c]
call fcn.0041c762
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x36f8
jl 0x420217
inc esi
cmp esi, 0x2f62
jl 0x420212
mov eax, dword [ebp - 0xd4]
dec dword [eax]
mov dword [ebp - 4], 0x14
cmp dword [ebp + 0x10], 0x616a
jge 0x420285
push 0xa8af40
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4202ae
lea ecx, [ebp - 0xf0]
call fcn.0041c810
inc dword [ebp + 0xc]
jmp 0x4200a0
mov eax, dword [ebp - 0x20]
mov dword [ebp + 0xc], eax
lea ecx, [ebp - 0xd4]
call fcn.0041c810
lea ecx, [ebp - 0xfc]
call fcn.0041c810
mov esi, dword [ebp - 0x2c]
dec dword [esi]
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebx]
xor edx, edx
cmp eax, edi
setne dl
sub edx, 0xea0fefe6
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebx]
xor ecx, ecx
cmp edx, eax
setne cl
neg ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov eax, dword [esi]
mov eax, dword [ebx]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebx]
xor ebx, ebx
cmp eax, edx
setle bl
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx]
sub ebx, eax
cmp ebx, dword [ecx]
je 0x420352
mov eax, dword [ebp - 0x30]
cmp dword [eax], 0
jne 0x420352
mov eax, dword [ebp - 0x70]
cmp dword [eax], 0
jne 0x420352
xor esi, esi
jmp 0x420354
mov esi, edi
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebx]
mov eax, dword [ebx]
xor edx, edx
cmp ecx, eax
setne dl
imul edx, esi
test edx, edx
je 0x420371
mov eax, dword [ebp - 0x34]
cmp dword [eax], 0
jne 0x420373
xor edi, edi
mov eax, dword [ebp - 0x48]
mov dword [eax], edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret