Function at 0x420a94
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x493aba
call fcn.00493440
sub esp, 0x420
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x2c], 0x1020
xor ebx, ebx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x420ac8
push ebx
call dword [0xaa107c]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x420ae5
push 0x1173
push 0xf9
push 0xf21
call dword [0xaa13c0]
mov dword [ebp - 0x24], 0x76b4
cmp dword [ebp - 0x24], 0x792c
jle 0x420b6b
mov dword [ebp - 0x1c], ebx
mov eax, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0x62a
mov esi, eax
mov dword [ebp - 0x30], 0x1788
mov edi, ebx
mov eax, esi
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x300]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x420b2b
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x300]
call fcn.0041c762
inc edi
cmp edi, 0x4568
jl 0x420b0f
dec esi
dec dword [ebp - 0x30]
jne 0x420b0d
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
add eax, esi
mov dword [ebp - 0x14], eax
dec dword [ebp - 0x20]
jne 0x420b04
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x1552
jl 0x420af8
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0x763d
jge 0x420b89
push 0xa8b014
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x420baf
mov dword [ebp - 0x30], 1
push 4
lea ecx, [ebp - 0x240]
call fcn.0041c40c
mov dword [ebp - 0x30], 0x4c2e
cmp dword [ebp - 0x30], 0x4e54
jle 0x420c19
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
push edx
push eax
lea ecx, [ebp - 0x3e4]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x420bf2
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x3e4]
call fcn.0041c762
inc edi
cmp edi, 0x633f
jl 0x420bd7
inc esi
cmp esi, 0x3140
jl 0x420bd5
mov dword [ebp - 4], 2
cmp dword [ebp - 0x30], 0x49b1
jge 0x420c34
push 0xa8b068
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x420c5a
mov dword [ebp - 0x20], ebx
jmp 0x420c6f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x240]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x420c5f
mov dword [ebp - 0x20], 2
jmp 0x420d14
mov dword [ebp - 0x30], 0xe704f3d4
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x420c9b
push ebx
call dword [0xaa124c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0xe563decf
setne cl
sub ecx, 0xcbe
jne 0x420cbc
cmp dword [ebp - 0x30], ebx
jne 0x420cbc
mov eax, ebx
jmp 0x420cbf
xor eax, eax
inc eax
mov ecx, 0xa0d018d3
cmp ecx, eax
sbb eax, eax
neg eax
neg eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
push 3
lea ecx, [ebp - 0x17c]
call fcn.0041c40c
mov dword [ebp - 0x1c], ebx
jmp 0x420cf7
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x17c]
mov dword [eax + ecx*4], 0x231
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x420ce4
mov eax, dword [ebp - 0x17c]
inc dword [eax + 8]
lea ecx, [ebp - 0x17c]
call fcn.0041c810
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe6
jle 0x420c81
lea ecx, [ebp - 0x240]
call fcn.0041c810
mov dword [ebp - 0x30], 0x9b55bb2c
mov eax, 0xe91a049f
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x20], 0x1d7feae2
mov dword [ebp - 0x28], 0xe1b8d813
mov dword [ebp - 0x24], ebx
jmp 0x420d65
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x44], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jl 0x420d5b
mov dword [ebp - 0x24], ebx
jmp 0x420d81
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x14c], 1
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x420d70
mov dword [ebp - 0x44], 3
cmp dword [ebp - 0x44], ebx
jl 0x420e9a
mov dword [ebp - 0x30], 0xc6548aa
mov eax, dword [ebp - 0x44]
cmp dword [ebp + eax*4 - 0x74], ebx
je 0x420e8c
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x44]
cmp dword [ebp + eax*4 - 0x74], ebx
jne 0x420dc4
cmp dword [ebp - 0x44], ebx
jne 0x420dc4
mov eax, ebx
jmp 0x420dc7
xor eax, eax
inc eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x30]
add eax, 0x58efa97f
cmp ecx, eax
jg 0x420de6
mov eax, dword [ebp - 0x44]
cmp dword [ebp + eax*4 - 0x74], ebx
je 0x420de9
xor ebx, ebx
inc ebx
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax*4 - 0x74]
xor ebx, ebx
cmp edx, eax
setge bl
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax*4 - 0x74]
xor ecx, ecx
cmp eax, ebx
setge cl
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax*4 - 0x74]
sub edx, eax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax*4 - 0x74]
xor ebx, ebx
cmp ecx, eax
setge bl
mov dword [ebp - 0x148], ebx
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax*4 - 0x74]
xor edx, edx
cmp ebx, eax
setle dl
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, ecx, 0x524
add ecx, 0x9c30
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, 0xfffffff7
jne 0x420e8a
xor eax, eax
inc eax
xor ebx, ebx
jmp 0x420e8e
xor ebx, ebx
mov eax, ebx
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x44]
jns 0x420d97
mov dword [ebp - 0x20], ebx
jmp 0x420eae
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x16
jne 0x420e9f
mov dword [ebp - 0x2c], 0x7a73d2d6
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 0x14], 0x57ed
cmp dword [ebp - 0x14], 0x5b4a
jle 0x420f27
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x30], 0x6d70
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x330]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x420ef7
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x330]
call fcn.0041c762
add edi, esi
dec dword [ebp - 0x30]
jne 0x420edd
inc esi
cmp esi, 0x3c2c
jl 0x420ed4
push 0x38f
call dword [0xaa13a0]
mov dword [ebp - 4], 4
cmp dword [ebp - 0x14], 0x5546
jge 0x420f42
push 0xa8b0b8
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x420f68
mov dword [ebp - 0x1c], ebx
jmp 0x420f7e
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x278], 0x7be9fb1c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x420f6d
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x420f98
push 0x7b9
call dword [0xaa1064]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x2c], 0xbd4dfbd6
push 2
lea ecx, [ebp - 0xf8]
call fcn.0041c40c
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0x28], 0xa1fd
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x2c], 0x70b3783e
mov dword [ebp - 0x2c], 0x5221ba82
mov dword [ebp - 0x24], ebx
jmp 0x421015
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xf8]
mov dword [eax + ecx*4], 0x1713
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x421002
mov dword [ebp - 0x24], ebx
jmp 0x421031
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x1ec], 0x8f21009d
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x421020
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 1
jg 0x4212ac
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x20], 0xffff
mov dword [ebp - 0x30], 5
mov dword [ebp - 0x2c], 0xb4dbdf90
mov dword [ebp - 0x24], ebx
jmp 0x421076
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x2a8], 0xfffffff6
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x421065
mov dword [ebp - 0x24], ebx
jmp 0x421092
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x2a0], 0xec213db2
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x421081
inc dword [ebp - 0x20]
jne 0x4210b1
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x38], 1
sbb eax, eax
neg eax
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x20]
add eax, 0x51c76d7b
je 0x4210d9
mov dword [ebp - 0x28], 0x84cbed56
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x1c]
jmp 0x42103a
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0x5c66b319
mov dword [ebp - 0x2c], 0x7c3cb878
mov dword [ebp - 0x2c], 0x1445a15b
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 1
jg 0x4210d1
mov dword [ebp - 0x30], 0x9130
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x2c], 0x47fce3ba
mov dword [ebp - 0x2c], 0x3ebaa2df
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x28], ebx
jne 0x421138
cmp dword [ebp - 0x38], ebx
je 0x42113b
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp ebx, eax
setg cl
xor ebx, ebx
mov eax, dword [ebp - 0xf8]
cmp ecx, dword [eax + edx*4]
setl bl
mov eax, dword [ebp - 0x20]
sub ebx, eax
mov dword [ebp - 0x1e0], ebx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
xor ebx, ebx
add eax, 0x5a33
je 0x421180
cmp dword [ebp - 0x30], ebx
je 0x421180
xor ecx, ecx
inc ecx
jmp 0x421182
mov ecx, ebx
xor eax, eax
cmp ecx, 0x5a46
setl al
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], 0x2600
cmp dword [ebp - 0x30], 0x26e3
jle 0x4211ee
mov edi, ebx
mov esi, ebx
lea eax, [esi + edi]
cdq
push edx
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4211bf
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2d0]
call fcn.0041c762
inc esi
cmp esi, 0x751b
jl 0x4211a4
inc edi
cmp edi, 0x2b0
jl 0x4211a2
push 1
call dword [0xaa1354]
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 1
jg 0x421263
push 3
lea ecx, [ebp - 0x1ac]
call fcn.0041c40c
mov dword [ebp - 0x14], ebx
jmp 0x42121c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1ac]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x421209
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [eax + 8]
xor ebx, ebx
mov eax, dword [ebp - 0xf8]
cmp ecx, dword [eax + edx*4]
setg bl
mov eax, dword [ebp - 0x24]
sub eax, ebx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x2a0], eax
lea ecx, [ebp - 0x1ac]
call fcn.0041c810
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
push 0
pop ebx
jle 0x4211f7
mov dword [ebp - 4], 6
cmp dword [ebp - 0x30], 0x2462
jge 0x42127e
push 0xa8b118
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4212a4
inc dword [ebp - 0x20]
jmp 0x421102
lea ecx, [ebp - 0xf8]
call fcn.0041c810
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0x46ddcd16
mov dword [ebp - 0x34], 0x13db
mov dword [ebp - 0x40], 0xa8b138
cmp dword [ebp - 0x34], 0x152f
jle 0x421344
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov dword [ebp - 0x38], ebx
mov edi, ebx
mov dword [ebp - 0x28], eax
mov ecx, esi
mov esi, eax
sar esi, cl
mov eax, esi
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x360]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x421309
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x360]
call fcn.0041c762
inc edi
cmp edi, 0x2b09
jl 0x4212ed
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x120f
mov eax, dword [ebp - 0x30]
jl 0x4212e2
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x46e1
jl 0x4212dd
push 1
lea ecx, [ebp - 0xbc]
call fcn.0041c40c
mov dword [ebp - 0x24], 0xfffffffa
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], ebx
jmp 0x42136f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xbc]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x421360
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
jl 0x4214f5
mov dword [ebp - 0x1c], 0x33992443
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x30], 0x7680
cmp dword [ebp - 0x30], 0x78c2
jle 0x4213d9
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x38], ebx
add eax, esi
add eax, edi
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x3dd9
jl 0x4213a8
inc esi
cmp esi, 0x7cb5
jl 0x4213a3
inc edi
cmp edi, 0xa8d
jl 0x4213a1
mov dword [ebp - 4], 8
cmp dword [ebp - 0x30], 0x73ee
jge 0x4213f8
mov edx, 0xa8b1a0
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x42141e
mov dword [ebp - 0x1c], ebx
jmp 0x421434
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x144], 6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x421423
mov dword [ebp - 0x1c], ebx
jmp 0x421450
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xd8], 0x885c82f7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x42143f
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x4214d2
mov dword [ebp - 0x38], 0x5b01d976
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xbc]
cmp dword [eax + ecx*4], ebx
jne 0x4214d2
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x28], ebx
jne 0x421498
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ecx]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
neg eax
cmp eax, dword [ebp - 0x24]
jle 0x4214ba
cmp dword [ebp - 0x1c], ebx
jne 0x4214ba
mov eax, ebx
jmp 0x4214bd
xor eax, eax
inc eax
mov ecx, 0xe6dabac8
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0xd8], eax
dec dword [ebp - 0x1c]
jns 0x42145e
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x4214ed
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xbc]
cmp dword [eax + ecx*4], ebx
jne 0x4214ed
dec dword [ebp - 0x20]
jns 0x4214da
dec dword [ebp - 0x24]
jmp 0x421378
mov dword [ebp - 0x24], ebx
jmp 0x421512
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x42150f
push ebx
push 0x2674
call dword [0xaa1394]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jle 0x4214fa
lea ecx, [ebp - 0xbc]
call fcn.0041c810
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0x130f
jge 0x42153b
push dword [ebp - 0x40]
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x421561
mov dword [ebp - 0x2c], 0xffffffff
push 1
lea ecx, [ebp - 0x22c]
call fcn.0041c40c
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x20], 0x46df37d4
mov dword [ebp - 0x24], 0x4dc9ed9b
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x2c], 0x959310c1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], ebx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setne dl
xor eax, eax
cmp edx, 0xf9c28ade
setne al
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0x18
jge 0x421701
mov dword [ebp - 0x2c], 0x43dd
mov dword [ebp - 0x14], 0x137c
cmp dword [ebp - 0x14], 0x1579
jle 0x42165d
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], ebx
mov ecx, edi
and ecx, eax
mov dword [ebp - 0x34], ecx
mov edi, ebx
mov esi, ebx
mov eax, edi
cdq
idiv esi
or edx, ecx
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x414]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x421616
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x414]
call fcn.0041c762
inc esi
cmp esi, 0x757e
mov ecx, dword [ebp - 0x34]
jl 0x4215f5
inc edi
cmp edi, 0x6b45
jl 0x4215f3
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x498a
mov eax, dword [ebp - 0x30]
jl 0x4215e7
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x996
jl 0x4215e2
mov dword [ebp - 0x34], 0xe623b470
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x14], 0x1066
jge 0x42167f
push 0xa8b218
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4216a5
mov dword [ebp - 0x1c], ebx
jmp 0x4216f3
mov dword [ebp - 0x2c], 0x8e9646b8
mov dword [ebp - 0x2c], 0x8664a11
mov dword [ebp - 0x20], 0x12
jmp 0x4216ea
mov dword [ebp - 0x2c], 0xfff12f3c
mov dword [ebp - 0x14], ebx
jmp 0x4216de
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x288], 0x145ccb97
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4216cd
inc dword [ebp - 0x34]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1d
jne 0x4216c1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jle 0x4216aa
inc dword [ebp - 0x24]
jmp 0x4215b8
mov dword [ebp - 0x20], 0x9b55bb2c
mov dword [ebp - 0x2c], 0x7a73d2d6
mov dword [ebp - 0x2c], 0xbd4dfbd6
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0x46ddcd16
mov dword [ebp - 0x2c], 0xffffffff
push 1
lea ecx, [ebp - 0x250]
call fcn.0041c40c
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], ebx
jmp 0x42174f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x250]
mov dword [eax + ecx*4], 0xf609b2b5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x42173c
mov dword [ebp - 0x20], 0xffffffef
jmp 0x4217c1
mov dword [ebp - 0x2c], 0x417be18
mov dword [ebp - 0x2c], 0xfe5e81a7
mov dword [ebp - 0x2c], 5
mov dword [ebp - 0x2c], 0xffffffff
push 4
lea ecx, [ebp - 0x220]
call fcn.0041c40c
mov dword [ebp - 0x2c], 0x51ae
mov dword [ebp - 0x34], 0xfb29d945
mov dword [ebp - 0x14], ebx
jmp 0x4217aa
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x220]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x42179a
inc dword [ebp - 0x34]
lea ecx, [ebp - 0x220]
call fcn.0041c810
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 1
jge 0x42175e
lea ecx, [ebp - 0x250]
call fcn.0041c810
mov dword [ebp - 0x14], ebx
jmp 0x4217ea
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x22c]
mov dword [eax + ecx*4], 0xf609b2b5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x4217d7
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x34], 0x37c04ccb
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x38], 0xdead9bac
push 1
lea ecx, [ebp - 0x110]
call fcn.0041c40c
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x34], 0x53494abc
mov dword [ebp - 0x28], 0x60389a9b
mov dword [ebp - 0x30], 0x12a2ef7e
mov dword [ebp - 0x1c], 0xbb531eaa
mov dword [ebp - 0x14], ebx
jmp 0x421848
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x421839
cmp dword [ebp - 0x38], ebx
jne 0x42185c
cmp dword [ebp - 0x20], ebx
jne 0x42185c
mov ecx, ebx
jmp 0x42185f
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setge dl
xor ecx, ecx
mov eax, dword [ebp - 0x110]
cmp dword [eax], 1
setl cl
xor eax, eax
cmp edx, ecx
setle al
mov ecx, dword [ebp - 0x34]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
dec dword [ebp - 0x30]
cmp eax, ecx
jg 0x4218ab
cmp dword [ebp - 0x38], ebx
jne 0x4218ab
mov ecx, ebx
jmp 0x4218ae
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x1cd5ccfd
setg al
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, ecx
setge dl
mov eax, dword [ebp - 0x110]
imul edx, dword [eax]
mov dword [eax], edx
lea ecx, [ebp - 0x110]
call fcn.0041c810
mov dword [ebp - 0x30], 0xffffffef
cmp dword [ebp - 0x30], 1
jl 0x4222b4
mov dword [ebp - 0x2c], 0x417be18
mov dword [ebp - 0x2c], 0x35a23e86
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x34], 0x26cd
cmp dword [ebp - 0x34], 0x2763
jle 0x42195c
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov edi, ebx
add eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc edi
cmp edi, 0x2396
mov eax, dword [ebp - 0x14]
jl 0x42192b
inc esi
cmp esi, 0xded
jl 0x421929
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x5f0b
jl 0x421927
mov byte [ebp - 0x15], bl
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x34], 0x257b
jge 0x42197e
mov edx, 0xa8b298
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x4219a4
cmp byte [ebp - 0x15], 0
je 0x4219b1
push ebx
call dword [0xaa12ac]
mov dword [ebp - 0x2c], 0xfe5e81a7
mov dword [ebp - 0x2c], 5
mov dword [ebp - 0x2c], 0x1020
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x4219d6
push ebx
call dword [0xaa107c]
mov dword [ebp - 0x38], 0x225f
cmp dword [ebp - 0x38], 0x2400
jle 0x421a59
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x34], 0x3634
xor eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x390]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x421a10
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x390]
call fcn.0041c762
add edi, esi
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
jne 0x4219f6
inc esi
cmp esi, 0x237d
jl 0x4219ed
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x1c28
jl 0x4219eb
push 0x125e
push ebx
push 0x2258
push 0x1166
call dword [0xaa1378]
mov byte [ebp - 0x15], bl
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x38], 0x1fb2
jge 0x421a77
push 0xa8b2fc
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x421a9d
cmp byte [ebp - 0x15], 0
je 0x421ab8
push 0x1173
push 0xf9
push 0xf21
call dword [0xaa13c0]
mov dword [ebp - 0x2c], 0xffffffff
push 4
lea ecx, [ebp - 0x214]
call fcn.0041c40c
mov dword [ebp - 0x24], 0x4aa0d722
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x40], 0xfafbf261
mov dword [ebp - 0x1c], ebx
jmp 0x421af7
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x94], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x421ae6
mov dword [ebp - 0x1c], ebx
jmp 0x421b10
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x7c], 0xfffffffd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x421b02
cmp dword [ebp - 0x24], ebx
jne 0x421b5d
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x24]
sub eax, edx
cmp eax, dword [ebp - 0x24]
jg 0x421b38
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x94]
mov ecx, 0xfffa
cmp ecx, eax
sbb eax, eax
neg eax
cmp dword [ebp - 0x24], eax
jle 0x421b5d
cmp dword [ebp - 0x24], ebx
jne 0x421b5d
mov ecx, ebx
jmp 0x421b60
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x90]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], 0x51ae
mov dword [ebp - 0x20], 0xfb87
push 2
lea ecx, [ebp - 0x128]
call fcn.0041c40c
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x34], 0x826
cmp dword [ebp - 0x34], 0xb44
jle 0x421c21
mov edi, ebx
mov esi, ebx
mov eax, edi
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x2e8]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x421bfa
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2e8]
call fcn.0041c762
inc esi
cmp esi, 0x7d76
jl 0x421bdb
inc edi
cmp edi, 0x1ae3
jl 0x421bd9
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x34], 0x782
jge 0x421c43
push 0xa8b34c
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x421c69
mov dword [ebp - 0x34], 0x73f0
cmp dword [ebp - 0x34], 0x7663
jle 0x421ca7
push ebx
push ebx
call dword [0xaa1220]
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, 0x3fa5
jl 0x421c85
inc esi
cmp esi, 0x7426
jl 0x421c83
mov dword [ebp - 0x14], ebx
jmp 0x421cbf
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x128]
mov dword [eax + ecx*4], 0x96ca2cb5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x421cac
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x34], 0x70d8
jge 0x421ce4
mov edx, 0xa8b378
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x421d0a
mov dword [ebp - 0x20], 0x64a6847d
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 1
jg 0x421e64
mov dword [ebp - 0x14], 5
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x28], 0x5b21
cmp dword [ebp - 0x28], 0x5d78
jle 0x421db3
push ebx
push 0x1093
push ebx
push 0x1910
call dword [0xaa103c]
mov eax, ebx
mov dword [ebp - 0x1c], ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov dword [ebp - 0x40], eax
mov ecx, edi
mov edi, eax
sar edi, cl
mov ecx, ebx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], 0x2dbc
mov eax, edi
or eax, ecx
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
mov ecx, dword [ebp - 0x34]
add ecx, esi
mov dword [ebp - 0x34], ecx
dec dword [ebp - 0x38]
jne 0x421d6f
inc esi
cmp esi, 0x26be
jl 0x421d63
mov edi, dword [ebp - 0x24]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x1058
mov eax, dword [ebp - 0x1c]
jl 0x421d58
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0xe0f
jl 0x421d53
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x28], 0x5879
jge 0x421dd2
mov edx, 0xa8b3b8
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x421df8
mov dword [ebp - 0x28], 1
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x14]
jl 0x421e0d
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
test eax, eax
setns cl
sub ecx, dword [ebp - 0x14]
xor eax, eax
cmp dword [edx + esi*4], ebx
sete al
xor edx, edx
cmp eax, ecx
setge dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
xor eax, eax
cmp ecx, 0xfa025ec5
setne al
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x20]
jmp 0x421d14
lea ecx, [ebp - 0x128]
call fcn.0041c810
mov dword [ebp - 0xa4], 0xfb29d945
mov dword [ebp - 0x34], 0x3403
cmp dword [ebp - 0x34], 0x3442
jle 0x421ed6
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x28], ebx
mov eax, esi
cdq
idiv ecx
mov eax, edi
sub eax, edx
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x1aa
jl 0x421e92
inc esi
cmp esi, 0x23b9
jl 0x421e8d
inc edi
cmp edi, 0xc9d
jl 0x421e8b
push ebx
push 0x1797
push ebx
call dword [0xaa1030]
push 3
lea ecx, [ebp - 0x11c]
call fcn.0041c40c
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x34], 0x30fb
jge 0x421f02
mov edx, 0xa8b3f8
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x421f28
mov dword [ebp - 0x24], 0x15252cb1
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], 9
mov dword [ebp - 0x2c], 0xc1fc
push 2
lea ecx, [ebp - 0x104]
call fcn.0041c40c
mov dword [ebp - 0x1c], ebx
jmp 0x421f65
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x11c]
mov dword [eax + ecx*4], 0x334
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x421f52
mov dword [ebp - 0x1c], ebx
jmp 0x421f80
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x104]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x421f70
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 2
jg 0x42208f
mov esi, dword [ebp - 0x104]
mov dword [ebp - 0x1c], 0x587c
mov dword [ebp - 0x20], 0x8d0336d0
mov dword [ebp - 0x28], 1
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x421fbd
call dword [0xaa1254]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
jl 0x421ffa
mov eax, dword [ebp - 0x11c]
cmp dword [eax], ebx
je 0x421fdf
cmp dword [ebp - 0x1c], ebx
je 0x421fdf
xor ecx, ecx
inc ecx
jmp 0x421fe1
mov ecx, ebx
mov eax, dword [ebp - 0x14]
imul eax, ecx
test eax, eax
jne 0x421ff5
mov eax, dword [ebp - 0x11c]
cmp dword [eax], ebx
je 0x421ffa
xor eax, eax
inc eax
jmp 0x421ffc
mov eax, ebx
cmp eax, dword [ebp - 0x1c]
jl 0x42200b
cmp dword [ebp - 0x1c], ebx
je 0x42200b
xor eax, eax
inc eax
jmp 0x42200d
mov eax, ebx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setl dl
add edx, 0xfff9
jne 0x42202e
cmp dword [ebp - 0x14], ebx
jne 0x42202e
mov ecx, ebx
jmp 0x422031
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x14]
jne 0x422053
cmp dword [ebp - 0x1c], ebx
jne 0x422053
mov edx, ebx
jmp 0x422056
xor edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], ebx
jne 0x422071
cmp dword [ebp - 0x1c], ebx
jne 0x422071
mov eax, ebx
jmp 0x422074
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
neg eax
mov dword [esi + 4], eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jle 0x421f99
mov dword [ebp - 0x20], ebx
jmp 0x4220a5
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x104]
cmp dword [eax + ecx*4], ebx
jne 0x4220ab
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 1
jle 0x422094
lea ecx, [ebp - 0x104]
call fcn.0041c810
lea ecx, [ebp - 0x11c]
call fcn.0041c810
push 2
lea ecx, [ebp - 0x1f8]
call fcn.0041c40c
mov dword [ebp - 0x20], 0x9beb0647
mov dword [ebp - 0x2c], 0xfffb
mov dword [ebp - 0x14], ebx
jmp 0x4220f4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1f8]
mov dword [eax + ecx*4], 0xbca63185
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4220e1
mov dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], ebx
jl 0x422162
push 3
lea ecx, [ebp - 0x194]
call fcn.0041c40c
mov dword [ebp - 0x14], ebx
jmp 0x42212b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x194]
mov dword [eax + ecx*4], 0x4cdb8faa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x422118
mov esi, dword [ebp - 0x194]
mov dword [esi + 4], 1
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x42214d
call dword [0xaa1280]
dec dword [esi + 4]
jns 0x42213e
lea ecx, [ebp - 0x194]
call fcn.0041c810
dec dword [ebp - 0x20]
jns 0x422106
lea ecx, [ebp - 0x1f8]
call fcn.0041c810
mov dword [ebp - 0x14], ebx
jmp 0x422182
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x214]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x422172
lea ecx, [ebp - 0xa4]
call fcn.0041f073
mov dword [ebp - 0x28], 0x712
cmp dword [ebp - 0x28], 0xa8e
jle 0x4221d2
call dword [0xaa11fc]
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc edi
cmp edi, 0x385b
jl 0x4221ad
inc esi
cmp esi, 0x6e2f
jl 0x4221ab
mov dword [ebp - 0x1c], 0xdb3ae355
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x28], 0x41a
jge 0x4221f8
mov edx, 0xa8b470
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x42221e
mov dword [ebp - 0x1c], 6
jmp 0x42229b
push 2
lea ecx, [ebp - 0x204]
call fcn.0041c40c
mov dword [ebp - 0x20], 0x83111738
mov dword [ebp - 0x14], ebx
jmp 0x42224f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x204]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x422240
mov dword [ebp - 0x20], ebx
jmp 0x422272
cmp dword [ebp - 0x20], 1
mov byte [ebp - 0x15], bl
jle 0x42225a
cmp dword [ebp - 0x1c], 0xfffffff5
je 0x422227
lea ecx, [ebp - 0x214]
call fcn.0041c810
inc dword [ebp - 0x30]
jmp 0x4218e6
lea ecx, [ebp - 0x22c]
call fcn.0041c810
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x10], ebx
jne 0x4222ce
xor al, al
jmp 0x4238d4
push 2
lea ecx, [ebp - 0x88]
call fcn.0041c40c
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x30], 0xca955a63
mov dword [ebp - 0x20], 0x2426f379
mov dword [ebp - 0x14], ebx
jmp 0x422308
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0x57fd5464
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4222f5
mov dword [ebp - 0x24], ebx
jmp 0x4223e7
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x24]
imul eax, eax, 0xffff
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], ebx
je 0x422349
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x88]
cmp dword [eax + ecx*4], ebx
je 0x422349
cmp dword [ebp - 0x30], ebx
je 0x422349
xor esi, esi
inc esi
jmp 0x42234b
mov esi, ebx
mov eax, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp - 0x88]
cmp esi, dword [ecx + eax*4]
setle dl
cmp edx, dword [ecx]
jge 0x42236a
cmp dword [ebp - 0x24], ebx
je 0x42236a
xor eax, eax
inc eax
jmp 0x42236c
mov eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp - 0x88]
cmp dword [ecx + eax*4], 1
setg dl
imul edx, dword [ecx + esi*4]
test edx, edx
je 0x4223c6
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x4223b6
push 0x685
push ebx
push 0xd77
push 0x17dd
push 0x41e
call dword [0xaa10b0]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x88]
cmp dword [eax + ecx*4], ebx
jne 0x4223f1
jmp 0x4223e4
mov dword [ebp - 0x20], ebx
jmp 0x4223de
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0x5ee6d54e
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x4223cb
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jle 0x422316
lea ecx, [ebp - 0x88]
call fcn.0041c810
mov dword [ebp - 0x20], 0xb379
mov dword [ebp - 0x28], 0x5ad058bb
xor ecx, ecx
inc ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x14], ebx
jmp 0x422423
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 0xa48bbca6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x422415
mov dword [ebp - 0x54], 3
cmp dword [ebp - 0x54], 0xffffffeb
jge 0x422510
mov dword [ebp - 0x30], 0xf3b8cff2
mov dword [ebp - 0x14], ebx
jmp 0x422457
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa0], 0x7fe64fd9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x422446
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, ecx, 0xffff2851
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
cmp edx, eax
setge cl
lea eax, [ecx - 0xc3f3]
mov ecx, dword [ebp - 0x20]
add ecx, eax
mov eax, dword [ebp - 0x54]
imul ecx, eax
mov eax, dword [ebp - 0x54]
imul eax, ecx
xor ecx, ecx
cmp eax, 0x7440271d
setle cl
mov eax, 0x5c81
sub eax, ecx
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x9c]
imul ecx, eax
mov edx, dword [ebp - 0x9c]
sub edx, ecx
mov eax, dword [ebp - 0x54]
sub edx, eax
mov eax, dword [ebp - 0x98]
add eax, edx
jne 0x4224de
cmp dword [ebp - 0x30], ebx
jne 0x4224de
mov eax, ebx
jmp 0x4224e1
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x9c]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x4a1d2daf
setle al
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xffffffeb
jl 0x42243a
xor ecx, ecx
inc ecx
mov dword [ebp - 0x20], ebx
jmp 0x422536
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x422533
push ebx
push ebx
push 0x15f4
push 0x2644
call dword [0xaa13c8]
xor ecx, ecx
inc ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jle 0x422515
mov dword [ebp - 0xdc], 0xffffffff
mov dword [ebp - 0x30], 0xf69f
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x42256c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x164], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x42255b
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x15c]
cmp dword [ebp - 0x24], ebx
je 0x42260e
mov dword [ebp - 0x1c], ebx
jmp 0x4225a4
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x13c], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x422597
mov dword [ebp - 0x1c], ebx
jmp 0x4225c0
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x25c], 0xcd538770
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x4225af
cmp dword [ebp - 0x24], ebx
jne 0x4225d5
cmp dword [ebp - 0x15c], ebx
jne 0x4225d5
mov ecx, ebx
lea eax, [ecx + 0x72b4]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x138]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x258], ecx
mov eax, dword [ebp - 0x138]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x164], eax
jmp 0x422634
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x422634
push ebx
push 0x678
push 0xec4
push ebx
push 0x20c1
push 0x1128
push ebx
call dword [0xaa1260]
mov dword [ebp - 0xb0], 0xffffffff
mov dword [ebp - 0x1c], 0x97f6af11
push 3
lea ecx, [ebp - 0x158]
call fcn.0041c40c
mov dword [ebp - 0x28], 0x66c6
cmp dword [ebp - 0x28], 0x6702
jle 0x42269b
push 0x1dd8
push 0x24df
call dword [0xaa104c]
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, 0x9d8
jl 0x422676
inc esi
cmp esi, 0x68c5
jl 0x422674
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x28], 0x644f
jge 0x4226bd
mov edx, 0xa8b4c4
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x4226e3
push 1
lea ecx, [ebp - 0x170]
call fcn.0041c40c
mov dword [ebp - 0x1c], ebx
jmp 0x422708
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x158]
mov dword [eax + ecx*4], 0x33920027
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x4226f5
mov dword [ebp - 0x1c], ebx
jmp 0x422726
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x170]
mov dword [eax + ecx*4], 0xdffa870c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x422713
mov dword [ebp - 0x1c], 0x1a
cmp dword [ebp - 0x1c], 0xffffffed
jne 0x42290c
mov dword [ebp - 0x20], 0xc326874b
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x28], 0x2f0f
cmp dword [ebp - 0x28], 0x2fa8
jle 0x4227a4
mov edi, ebx
mov esi, ebx
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x318]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x42277d
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x318]
call fcn.0041c762
inc esi
cmp esi, 0x51f8
jl 0x42275f
inc edi
cmp edi, 0x76c1
jl 0x42275d
mov dword [ebp - 0x14], ebx
jmp 0x4227ba
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x290], 0x6d8f9c32
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4227a9
mov dword [ebp - 4], 0x1e
cmp dword [ebp - 0x28], 0x2dce
jge 0x4227db
push 0xa8b510
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x422801
mov dword [ebp - 0x38], 0x26dc
cmp dword [ebp - 0x38], 0x2740
jle 0x422875
mov ecx, ebx
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov dword [ebp - 0x34], ebx
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov eax, edi
cdq
idiv esi
mov esi, edx
and esi, ecx
mov edi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc edi
cmp edi, 0x4400
jl 0x42282e
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x6a16
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
jl 0x422820
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0x6226
jl 0x42281b
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x603e
jl 0x422816
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], ebx
jne 0x422883
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], ebx
jne 0x42289d
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov eax, dword [ebp - 0x158]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], 0x20
cmp dword [ebp - 0x38], 0x2409
jge 0x4228d6
mov edx, 0xa8b578
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x4228fc
mov eax, dword [ebp - 0x170]
inc dword [eax]
dec dword [ebp - 0x1c]
jmp 0x422733
lea ecx, [ebp - 0x170]
call fcn.0041c810
lea ecx, [ebp - 0x158]
call fcn.0041c810
push 2
lea ecx, [ebp - 0x1c4]
call fcn.0041c40c
mov dword [ebp - 0x208], 0xd569
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 0x14], ebx
jmp 0x422956
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2b8], 0x7be9fb1c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x422945
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x422970
push 0x7b9
call dword [0xaa1064]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x2b4], ecx
mov dword [ebp - 0x2c], 0xaa5d
mov dword [ebp - 0x28], 0x4b6d
cmp dword [ebp - 0x28], 0x4d0c
jle 0x422a27
mov edx, ebx
mov dword [ebp - 0x14], ebx
mov ecx, ebx
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov esi, ebx
lea eax, [esi + edi]
add eax, ecx
xor eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x348]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4229e2
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x348]
call fcn.0041c762
inc esi
cmp esi, 0x49a1
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x14]
jl 0x4229c3
inc edi
cmp edi, 0x501f
jl 0x4229c1
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x4f7a
jl 0x4229bf
inc edx
mov dword [ebp - 0x14], edx
cmp edx, 0x2d23
jl 0x4229ba
mov dword [ebp - 0xe0], 0x7d2a
mov dword [ebp - 4], 0x22
cmp dword [ebp - 0x28], 0x4ac3
jge 0x422a4c
push 0xa8b5e0
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x422a72
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], 0x7c8748af
cmp dword [ebp - 0x24], ebx
je 0x422aba
mov dword [ebp - 0x28], 5
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x422af2
push 0x1bc3
push ebx
push 0x37c
push 0x10af
call dword [0xaa13dc]
jmp 0x422af2
mov dword [ebp - 0x14], ebx
jmp 0x422ad0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x268], 0xd962
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x422abf
mov dword [ebp - 0x24], ebx
jmp 0x422aec
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x268], 0xfffffffe
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x422adb
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x422b4b
push 2
lea ecx, [ebp - 0x188]
call fcn.0041c40c
mov dword [ebp - 0x14], ebx
jmp 0x422b1b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x188]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x422b0c
mov dword [ebp - 0x24], ebx
jmp 0x422b35
cmp dword [ebp - 0x24], 2
jl 0x422b26
mov dword [ebp - 0xe8], 7
mov dword [ebp - 0xc4], 0x8e7ea1b1
mov dword [ebp - 0xc8], 0x5c2f4fe1
mov dword [ebp - 0x2c], 0x35a23e86
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 1
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x422b94
push ebx
call dword [0xaa12ac]
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x20], 3
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x422bb5
push ebx
call dword [0xaa1250]
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 6
jne 0x422db4
mov dword [ebp - 0x30], 0x53aa9ac7
push 1
lea ecx, [ebp - 0x1a0]
call fcn.0041c40c
mov dword [ebp - 0x14], ebx
jmp 0x422bee
cmp dword [ebp - 0x14], 1
jl 0x422bdb
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x48c9
cmp dword [ebp - 0x28], 0x49b3
jle 0x422df9
push ebx
push ebx
push ebx
call dword [0xaa11ec]
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, 0x23e6
jl 0x422dd4
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], 0x28
cmp dword [ebp - 0x28], 0x4718
jge 0x422e1b
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret