Function at 0x401aa2
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4b920d
call fcn.004b8e18
sub esp, 0x238
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x5c], ecx
push 2
lea ecx, [ebp - 0x98]
call fcn.0040a8cd
mov dword [ebp - 0x24], 0x25b054db
mov dword [ebp - 0x24], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x28], ebx
jmp 0x401af3
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], 0xf0ea75c9
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x401ae0
mov dword [ebp - 0x28], ebx
jmp 0x401b0f
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x1d8], 0xef7d6512
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x401afe
mov eax, dword [ebp - 0x98]
mov dword [eax], ebx
cmp dword [eax], 4
jge 0x401d48
mov dword [ebp - 0x2c], 0x56a9ef72
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x24], 0xc544087
mov dword [ebp - 0x24], 0x761be360
mov dword [ebp - 0x2c], 0x16
cmp dword [ebp - 0x2c], 0xfffffffc
jge 0x401d3b
mov dword [ebp - 0x28], 0x9d94b4b1
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 0x9333c7d2
mov dword [ebp - 0x24], 0x311e2db8
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x28], 2
cmp dword [ebp - 0x28], ebx
jl 0x401d33
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 2
jg 0x401d2b
mov dword [ebp - 0x30], 0x4a1d
cmp dword [ebp - 0x30], 0x4d29
jle 0x401c0a
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov esi, ebx
mov eax, esi
and eax, edi
or eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x1b4]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x401bcd
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x1b4]
call fcn.0040ae7b
inc esi
cmp esi, 0x2b99
mov ecx, dword [ebp - 0x14]
jl 0x401baf
inc edi
cmp edi, 0x2df0
jl 0x401bad
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x588c
jl 0x401bab
push ebx
call dword [fcn.00aa0368]
mov dword [ebp - 0x24], 0x7c70ab2
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x30], 0x47b5
jge 0x401c28
push 0xa7a204
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x401c4e
mov dword [ebp - 0x34], 0x298f
cmp dword [ebp - 0x34], 0x2d66
jle 0x401cd8
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x14], ecx
mov eax, edi
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x24], eax
and eax, ecx
and eax, dword [ebp - 0x30]
cdq
push edx
push eax
lea ecx, [ebp - 0x208]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x401c91
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x208]
call fcn.0040ae7b
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x5063
mov eax, dword [ebp - 0x24]
jl 0x401c74
inc esi
cmp esi, 0x3bef
jl 0x401c65
inc edi
cmp edi, 0x1393
jl 0x401c63
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x4998
jl 0x401c61
mov dword [ebp - 0x24], 0xffd81438
mov dword [ebp - 4], 2
cmp dword [ebp - 0x34], 0x2936
jge 0x401cfa
push 0xa7a254
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x401d20
dec dword [ebp - 0x20]
inc dword [ebp - 0x18]
jmp 0x401b8c
dec dword [ebp - 0x28]
jmp 0x401b7d
dec dword [ebp - 0x2c]
jmp 0x401b49
mov eax, dword [ebp - 0x98]
inc dword [eax]
jmp 0x401b1d
lea ecx, [ebp - 0x98]
call fcn.0040a99f
push 2
lea ecx, [ebp - 0xb0]
call fcn.0040a8cd
mov dword [ebp - 0x28], 0xa8eac8b
mov dword [ebp - 0x24], 1
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x401d7e
push ebx
call dword [0xaa0378]
mov dword [ebp - 0x28], ebx
jmp 0x401e55
mov dword [ebp - 0x20], 0x63d18804
mov dword [ebp - 0x14], 0xfe57f6cc
mov dword [ebp - 0x18], ebx
jmp 0x401daa
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb8], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x401d99
mov dword [ebp - 0x18], ebx
jmp 0x401dc6
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xf8], 0x9d940313
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x401db5
imul ecx, dword [ebp - 0x28], 0xc556
add ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xb8]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x20], 0xe864896e
mov eax, dword [ebp - 0x28]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp dword [ebp - 0x20], ecx
jl 0x401e0d
cmp dword [ebp - 0x28], ebx
je 0x401e0d
xor ecx, ecx
inc ecx
jmp 0x401e0f
mov ecx, ebx
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0xb8], edx
mov ecx, dword [ebp - 0x28]
imul ecx, edx
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setg dl
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xf4], ecx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x11
je 0x401d86
mov dword [ebp - 0x24], 0x25b054db
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x24], 0xe8b72fd4
mov dword [ebp - 0x20], 0x435a
cmp dword [ebp - 0x20], 0x469f
jle 0x401ed1
mov edi, ebx
mov esi, ebx
lea eax, [esi + edi]
cdq
push edx
push eax
lea ecx, [ebp - 0x160]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x401eaa
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x160]
call fcn.0040ae7b
inc esi
cmp esi, 0x5ed
jl 0x401e8f
inc edi
cmp edi, 0x5b25
jl 0x401e8d
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], 4
cmp dword [ebp - 0x20], 0x4050
jge 0x401eef
push 0xa7a2a8
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x401f15
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x14], 0x7119
cmp dword [ebp - 0x14], 0x7389
jle 0x401f91
mov edi, ebx
mov dword [ebp - 0x2c], ebx
mov eax, edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 0x7c98
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
add eax, esi
mov dword [ebp - 0x24], eax
mov esi, eax
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9cbd8
call fcn.0040a6a5
inc edi
cmp edi, 0x25b1
jl 0x401f4b
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x190a
mov eax, dword [ebp - 0x30]
jl 0x401f42
dec eax
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x34]
jne 0x401f3d
mov edi, dword [ebp - 0x2c]
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x2b6a
jl 0x401f31
mov dword [ebp - 0x24], 0x44d0289a
mov dword [ebp - 4], 6
cmp dword [ebp - 0x14], 0x6f88
jge 0x401fb7
mov edx, 0xa7a310
mov ecx, 0xa9cbd8
call fcn.0040cf2b
or dword [ebp - 4], 0xffffffff
jmp 0x401fdd
mov dword [ebp - 0x20], 0x30b1
cmp dword [ebp - 0x20], 0x3324
jle 0x402037
mov edi, ebx
mov esi, ebx
mov eax, edi
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x178]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x402010
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x178]
call fcn.0040ae7b
inc esi
cmp esi, 0x255
jl 0x401ff1
inc edi
cmp edi, 0x18d2
jl 0x401fef
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], 8
cmp dword [ebp - 0x20], 0x2eb4
jge 0x402055
push 0xa7a388
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x40207b
mov dword [ebp - 0x24], 0xbefa5f9c
mov dword [ebp - 0x14], ebx
jmp 0x402095
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], 0x2ba75a59
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x402087
mov dword [ebp - 0x18], 0x14
cmp dword [ebp - 0x18], 0xfffffff5
jg 0x4021e8
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x24], 0x96a162c9
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x14], ebx
jmp 0x4020e5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x22c], 0xb5f0b10
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4020d4
inc dword [ebp - 0x20]
mov dword [ebp - 0x34], 0x49d0
cmp dword [ebp - 0x34], 0x4cfa
jle 0x40218a
mov ecx, ebx
mov dword [ebp - 0x2c], ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
add eax, ecx
mov dword [ebp - 0x24], eax
mov ecx, esi
mov esi, eax
shl esi, cl
mov eax, esi
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x19c]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x40213a
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x19c]
call fcn.0040ae7b
inc edi
cmp edi, 0x541c
jl 0x40211e
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x557c
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
jl 0x402111
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x76db
jl 0x40210c
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0xf6f
jl 0x402107
call dword [0xaa037c]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x40219f
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xaa0034]
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0x4884
jge 0x4021ba
push 0xa7a3f8
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4021e0
dec dword [ebp - 0x18]
jmp 0x4020a2
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], 0xfffffffa
mov dword [ebp - 0x18], 0x4a6e8f59
mov dword [ebp - 0x20], 0xf50
cmp dword [ebp - 0x20], 0xfdf
jle 0x402253
mov edi, ebx
mov esi, ebx
mov eax, esi
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x1cc]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x40222c
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x1cc]
call fcn.0040ae7b
inc esi
cmp esi, 0x5973
jl 0x402210
inc edi
cmp edi, 0x5af
jl 0x40220e
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x20], 0xe57
jge 0x402275
push 0xa7a470
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x40229b
mov dword [ebp - 0x14], ebx
jmp 0x4022ae
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3c], 0x2799ac78
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x4022a0
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x40234a
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp - 0x20], 0xe5d5ec7e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], 0x196a
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0xe0fc
setge cl
cmp ecx, 0xffffffff
sbb eax, eax
neg eax
add eax, 0x3f1d9cd4
mov ecx, 0xa1a1f050
cmp ecx, eax
sbb ecx, ecx
add ecx, 0x71fba233
imul ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
sub ecx, eax
mov eax, dword [ebp - 0x3c]
sub ecx, eax
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0xfffd
sbb ecx, ecx
neg ecx
imul ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setg dl
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
dec dword [ebp - 0x28]
jns 0x4022c0
mov dword [ebp - 0x18], ebx
jmp 0x40249a
mov dword [ebp - 0x24], 0xa514227f
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x14], ebx
jmp 0x402376
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x8c], 0x892657cf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x402365
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3c], esi
mov eax, dword [ebp - 0x18]
xor ecx, ecx
test eax, eax
setns cl
mov eax, dword [ebp - 0x88]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x88]
xor ecx, ecx
cmp esi, eax
sete cl
xor eax, eax
cmp ecx, edx
setg al
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x88], 0xdfa23986
mov dword [ebp - 0x2c], 0xd95d6068
mov dword [ebp - 0x14], ebx
jmp 0x4023df
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x50], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4023d1
mov dword [ebp - 0x14], ebx
jmp 0x402449
mov dword [ebp - 0x20], 0xf6c8
mov dword [ebp - 0x24], 0x39d13348
cmp dword [ebp - 0x2c], ebx
je 0x402400
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0x124628d2
setl cl
mov dword [ebp - 0x24], ecx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x402446
push 0x180f
push 0x1801
push 0x2e7
call dword [0xaa0530]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x4023ea
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x402497
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0x50], ebx
jne 0x402497
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x4c]
jne 0x402470
cmp dword [ebp - 0x50], ebx
jne 0x402470
mov esi, ebx
jmp 0x402473
xor esi, esi
inc esi
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp + eax*4 - 0x50]
xor ecx, ecx
cmp esi, 0xffffffff
sete cl
sub ecx, 0x1eca8c8d
xor eax, eax
cmp edx, ecx
setge al
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x28]
jns 0x402456
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x402352
mov dword [ebp - 0x18], ebx
jmp 0x4024bb
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xb0]
mov dword [eax + ecx*4], 0xf0ea75c9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x4024a8
mov dword [ebp - 0x2c], 0x8e418a52
mov dword [ebp - 0x14], 0xc3414b58
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x20], 9
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x4024fd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x13c], 0xb36c9384
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4024ec
mov dword [ebp - 0x20], 0x974c
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x130], eax
neg eax
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ebx
jmp 0x402562
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x148], 0xef7d6512
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x402551
push 2
lea ecx, [ebp - 0x70]
call fcn.0040a8cd
mov dword [ebp - 0x14], 0x1af7f3e7
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x2c], 0xe6ba9994
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x18], ebx
jmp 0x4025b4
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x4025a4
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
jl 0x4025c5
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x70]
imul eax, dword [ecx + 4], 0xffff
add eax, 2
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], ebx
jne 0x402609
mov eax, dword [ebp - 0x2c]
xor eax, eax
cmp dword [ecx + 4], ebx
setl al
imul ecx, eax, 0xffff
xor edx, edx
mov eax, dword [ebp - 0x70]
cmp ecx, dword [eax]
setge dl
mov eax, dword [ebp - 0x2c]
imul eax, edx
xor ecx, ecx
cmp eax, 0x5eb13e27
setl cl
sub ecx, dword [ebp - 0x2c]
je 0x402640
cmp dword [ebp - 0x30], ebx
je 0x402640
xor eax, eax
inc eax
jmp 0x402642
mov eax, ebx
xor edx, edx
inc edx
sub edx, eax
sub edx, dword [ebp - 0x24]
neg edx
sbb edx, edx
inc edx
xor ecx, ecx
mov eax, dword [ebp - 0x70]
cmp edx, dword [eax]
setl cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x70]
call fcn.0040a99f
mov eax, dword [ebp - 0xb0]
mov dword [eax], ebx
cmp dword [eax], 4
jge 0x40327e
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x14], ebx
jmp 0x402692
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x184], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x402681
mov dword [ebp - 0x2c], ebx
cmp dword [ebp - 0x2c], 2
mov byte [ebp - 0x19], bl
jg 0x40273c
cmp byte [ebp - 0x19], 0
je 0x402734
mov dword [ebp - 0x20], 0x21eb
cmp dword [ebp - 0x20], 0x2370
jle 0x4026e8
mov esi, ebx
mov edi, ebx
mov ebx, 0x538
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xa9cbd8
call fcn.0040a6a5
add edi, esi
dec ebx
jne 0x4026cb
inc esi
cmp esi, 0x6068
jl 0x4026c4
push ebx
call dword [0xaa0390]
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x20], 0x20ef
jge 0x40270e
mov edx, 0xa7a510
mov ecx, 0xa9cbd8
call fcn.0040cf2b
or dword [ebp - 4], 0xffffffff
jmp 0x402734
inc dword [ebp - 0x2c]
jmp 0x40269b
cmp byte [ebp - 0x19], 0
je 0x402749
push ebx
call dword [0xaa046c]
mov dword [ebp - 0x30], 0x56a9ef72
mov dword [ebp - 0x14], 0x38be
mov dword [ebp - 0x20], 0xe3e45bbb
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], 0xae7b1b0c
mov dword [ebp - 0x30], 0x6322
cmp dword [ebp - 0x30], 0x644f
jle 0x4027b9
mov esi, ebx
mov dword [ebp - 0x34], ebx
mov edi, esi
mov dword [ebp - 0x20], 0x6324
mov esi, ebx
mov eax, edi
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xa9cbd8
call fcn.0040a6a5
inc esi
cmp esi, 0x109f
jl 0x402788
dec edi
dec dword [ebp - 0x20]
jne 0x402786
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x7ea7
jl 0x40277d
mov dword [ebp - 0x28], ebx
jmp 0x4027c8
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x44], ebx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x4027be
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x30], 0x600e
jge 0x4027ed
mov edx, 0xa7a578
mov ecx, 0xa9cbd8
call fcn.0040cf2b
or dword [ebp - 4], 0xffffffff
jmp 0x402813
mov dword [ebp - 0x28], ebx
jmp 0x402829
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xf0], 0x5bc42206
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x402818
mov dword [ebp - 0x28], ebx
jmp 0x402845
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x12c], 0xa2ef703c
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x402834
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x14]
neg eax
je 0x4028a7
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], 0xfffffff7
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x14], eax
jge 0x402876
cmp dword [ebp - 0x40], ebx
jne 0x402876
mov eax, ebx
jmp 0x402879
xor eax, eax
inc eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x44]
imul eax, edx
test eax, eax
je 0x4028a7
xor eax, eax
inc eax
jmp 0x4028a9
mov eax, ebx
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x4028bb
call dword [0xaa0524]
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x24], 0xd1bc
mov dword [ebp - 0x14], 5
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 0x20], 0xfffffffa
push 3
lea ecx, [ebp - 0xc4]
call fcn.0040a8cd
mov dword [ebp - 0x30], 0x8693
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x2c], 0x36dc
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x40291b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc4]
mov dword [eax + ecx*4], 0xa29822cb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x402908
mov dword [ebp - 0x18], ebx
jmp 0x402934
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x402926
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0xffffffff
setg cl
sub ecx, 0x8b2e
mov eax, dword [ebp - 0xc4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x30]
dec dword [ebp - 0x2c]
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp eax, 0x85f
setle cl
imul eax, ecx, 0x506e
test eax, eax
je 0x402990
cmp dword [ebp - 0x2c], ebx
je 0x402990
xor eax, eax
inc eax
jmp 0x402992
mov eax, ebx
dec eax
cmp eax, dword [ebp - 0x34]
jl 0x402a3f
mov dword [ebp - 0x20], 0x73e1
cmp dword [ebp - 0x20], 0x750d
jle 0x4029f5
mov edi, ebx
mov esi, ebx
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x1f0]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4029ce
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x1f0]
call fcn.0040ae7b
inc esi
cmp esi, 0x6c30
jl 0x4029b0
inc edi
cmp edi, 0x65c6
jl 0x4029ae
mov dword [ebp - 0x14], 0x48afe0a4
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x20], 0x72a5
jge 0x402a17
push 0xa7a600
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x402a6c
mov dword [ebp - 0x14], ebx
jmp 0x402a52
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x58], 0x32ca
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x402a44
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x402a6c
push 1
push ebx
push ebx
push ebx
call dword [0xaa003c]
lea ecx, [ebp - 0xc4]
call fcn.0040a99f
mov dword [ebp - 0x24], 0xc544087
mov dword [ebp - 0x24], 6
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x402a96
push ebx
push ebx
call dword [fcn.00aa0520]
mov dword [ebp - 0x34], 0x4752
cmp dword [ebp - 0x34], 0x4a0a
jle 0x402ae2
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], esi
mov ebx, 0x3359
mov eax, edi
or eax, esi
cdq
push edx
push eax
mov ecx, 0xa9cbd8
call fcn.0040a6a5
dec esi
dec ebx
jne 0x402ab5
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x340d
jl 0x402aad
inc edi
cmp edi, 0x16c7
jl 0x402aa8
mov byte [ebp - 0x19], bl
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x34], 0x4404
jge 0x402b04
mov edx, 0xa7a66c
mov ecx, 0xa9cbd8
call fcn.0040cf2b
or dword [ebp - 4], 0xffffffff
jmp 0x402b2a
cmp byte [ebp - 0x19], 0
je 0x402b48
push ebx
push 0x2316
push 0x76c
push 0x12ac
push 9
call dword [fcn.00aa0068]
mov dword [ebp - 0x24], 0x761be360
mov dword [ebp - 0x30], 0x16
cmp dword [ebp - 0x30], 0xfffffffc
jge 0x403271
mov dword [ebp - 0x14], 0xfffc
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x2c], 0xf5452fa8
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], 0x4a0f
mov dword [ebp - 0x18], ebx
jmp 0x402b92
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x80], 0xa624cdb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x402b84
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
je 0x402bbc
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x28], 0xca77
test eax, eax
je 0x402bbc
xor eax, eax
inc eax
jmp 0x402bbe
mov eax, ebx
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], ebx
je 0x402bd0
cmp dword [ebp - 0x14], ebx
je 0x402bd0
xor eax, eax
inc eax
jmp 0x402bd2
mov eax, ebx
mov ecx, dword [ebp - 0x14]
imul ecx, eax
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setge dl
cmp edx, 0xb3799040
sbb eax, eax
inc eax
cmp eax, 1
jle 0x402bf3
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x78], ebx
je 0x402c0b
cmp dword [ebp - 0x74], ebx
je 0x402c0b
xor ecx, ecx
inc ecx
jmp 0x402c0d
mov ecx, ebx
mov eax, dword [ebp - 0x14]
imul eax, ecx
test eax, eax
je 0x402c5a
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], 1
cmp dword [ebp - 0x74], ebx
jne 0x402c2d
mov eax, dword [ebp - 0x20]
mov eax, ebx
jmp 0x402c30
xor eax, eax
inc eax
xor edx, edx
cmp eax, 0x8160
setle dl
imul edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x9690b281
sbb eax, eax
neg eax
mov dword [ebp - 0x24], eax
jmp 0x402f24
mov dword [ebp - 0x28], 2
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], 0x68a8
cmp dword [ebp - 0x20], 0x68c8
jle 0x402ca9
mov esi, ebx
mov edi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xa9cbd8
call fcn.0040a6a5
inc edi
cmp edi, 0x4bcf
jl 0x402c86
inc esi
cmp esi, 0x25f7
jl 0x402c84
mov dword [ebp - 0x34], 0x520a048c
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x20], 0x6540
jge 0x402ccf
mov edx, 0xa7a6e0
mov ecx, 0xa9cbd8
call fcn.0040cf2b
or dword [ebp - 4], 0xffffffff
jmp 0x402cf5
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x18], 0x25cc
cmp dword [ebp - 0x18], 0x269e
jle 0x402d93
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov esi, ebx
mov dword [ebp - 0x14], ebx
add eax, esi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], 0x3ad3
mov edi, eax
mov esi, 0x5930
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x220]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x402d51
mov eax, dword [eax]
push eax
call fcn.004a3677
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x220]
call fcn.0040ae7b
dec edi
dec esi
jne 0x402d37
mov eax, dword [ebp - 0x20]
dec eax
mov dword [ebp - 0x20], eax
dec dword [ebp - 0x34]
jne 0x402d30
mov esi, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x7851
mov eax, dword [ebp - 0x2c]
jl 0x402d24
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x331e
jl 0x402d1f
mov dword [ebp - 0x14], ebx
jmp 0x402da9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x11c], 0x4122e7df
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x402d98
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x18], 0x25b9
jge 0x402dca
push 0xa7a750
call fcn.004a3677
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x402df0
cmp dword [ebp - 0x28], ebx
je 0x402eed
mov dword [ebp - 0x20], 0x2097
push 2
lea ecx, [ebp - 0xd0]
call fcn.0040a8cd
mov dword [ebp - 0x14], ebx
jmp 0x402e25
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0x1d4c3f1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x402e12
inc dword [ebp - 0x24]
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 3
jg 0x402ee0
mov dword [ebp - 0x20], 0x2fc5
cmp dword [ebp - 0x20], 0x3126
jle 0x402e85
lea ecx, [ebp - 0xd0]
call fcn.0040a99f
jmp 0x402f24
mov dword [ebp - 0x18], 0x15
jmp 0x402f1e
mov dword [ebp - 0x14], ebx
jmp 0x402f15
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x402f0b
cmp dword [ebp - 0x14], 0xfffffff4
jl 0x402efb
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 6
je 0x402ef6
mov dword [ebp - 0x28], 0x9d94b4b1
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 0x9333c7d2
mov dword [ebp - 0x24], 0x311e2db8
mov dword [ebp - 0x18], 0x42c70bb7
mov dword [ebp - 0x24], 0xe00f
mov dword [ebp - 0x24], 0xfffffff7
push 1
lea ecx, [ebp - 0xe8]
call fcn.0040a8cd
mov dword [ebp - 0x18], ebx
jmp 0x402f78
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x114], 0xfffffff8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x402f67
mov dword [ebp - 0x18], ebx
jmp 0x402f96
mov eax, dword [ebp - 0xb0]
inc dword [eax]
jmp 0x40266c
lea ecx, [ebp - 0xb0]
call fcn.0040a99f
mov eax, dword [ebp - 0x64]
cdq
mov ecx, 0x3e8
idiv ecx
mov edi, edx
mov esi, eax
mov ecx, dword [ebp - 0x5c]
call fcn.00401a2c
add eax, esi
add eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret