Function at 0x401994
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov eax, 0x4b8ecd
call fcn.004b8ae0
sub esp, 0xd48
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x50], dl
mov dword [ebp - 0x10c], ecx
push 2
lea ecx, [ebp - 0x164]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x68bb4aad
mov dword [ebp - 0x48], 0xcec51938
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x4019f7
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x164]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4019dc
xor eax, eax
xor ebx, ebx
inc ebx
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], eax
jl 0x401b47
mov edi, dword [ebp - 0x164]
mov dword [ebp - 0x28], 0xa3205f5a
mov dword [ebp - 0x20], 0xf323
mov dword [ebp - 0x48], 0xafe497d6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x164]
cmp dword [eax + ecx*4], 0
jne 0x401a46
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x164]
cmp dword [eax + ecx*4], 0
jne 0x401a46
xor eax, eax
jmp 0x401a48
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xfc02
setg cl
add ecx, 0x42bb
xor edx, edx
mov eax, dword [ebp - 0x164]
cmp ecx, dword [eax]
setne dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x164]
add edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edx
setl cl
cmp dword [ebp - 0x14], 0xfff6
sbb eax, eax
inc eax
add ecx, eax
xor eax, eax
cmp ecx, dword [edi + 4]
setl al
mov ecx, 0xa19820b2
cmp ecx, eax
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, dword [ebp - 0x18]
jne 0x401ac3
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0xda2a
setle cl
mov dword [ebp - 0x48], ecx
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
jg 0x401b3e
jmp 0x401ae1
xor eax, eax
mov dword [ebp - 0x3c], 0xffffffff
cmp dword [ebp - 0x3c], eax
mov ecx, eax
je 0x401af1
mov ecx, ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
xor eax, eax
test ecx, ecx
sete al
xor edx, edx
cmp eax, 0xffffffff
setge dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x48], ecx
mov byte [ebp - 0x22], 0
cmp byte [ebp - 0x22], 0
je 0x401b36
push 0x20e9
push 0x86c
call dword [0xaca09c]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x401adf
dec dword [ebp - 0x18]
jns 0x401a0c
lea ecx, [ebp - 0x164]
call fcn.00414865
push 2
lea ecx, [ebp - 0x140]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x68bb4aad
mov dword [ebp - 0x48], 0xcec51938
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x401b96
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x140]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x401b7b
xor eax, eax
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], eax
jl 0x401ce3
mov edi, dword [ebp - 0x140]
mov dword [ebp - 0x28], 0xa3205f5a
mov dword [ebp - 0x20], 0xf323
mov dword [ebp - 0x48], 0xafe497d6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x140]
cmp dword [eax + ecx*4], 0
jne 0x401be2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x140]
cmp dword [eax + ecx*4], 0
jne 0x401be2
xor eax, eax
jmp 0x401be4
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xfc02
setg cl
add ecx, 0x42bb
xor edx, edx
mov eax, dword [ebp - 0x140]
cmp ecx, dword [eax]
setne dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x140]
add edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edx
setl cl
cmp dword [ebp - 0x14], 0xfff6
sbb eax, eax
inc eax
add ecx, eax
xor eax, eax
cmp ecx, dword [edi + 4]
setl al
mov ecx, 0xa19820b2
cmp ecx, eax
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, dword [ebp - 0x18]
jne 0x401c5f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0xda2a
setle cl
mov dword [ebp - 0x48], ecx
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
jg 0x401cda
jmp 0x401c7d
xor eax, eax
mov dword [ebp - 0x3c], 0xffffffff
cmp dword [ebp - 0x3c], eax
mov ecx, eax
je 0x401c8d
mov ecx, ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
xor eax, eax
test ecx, ecx
sete al
xor edx, edx
cmp eax, 0xffffffff
setge dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x48], ecx
mov byte [ebp - 0x22], 0
cmp byte [ebp - 0x22], 0
je 0x401cd2
push 0x20e9
push 0x86c
call dword [0xaca09c]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x401c7b
dec dword [ebp - 0x18]
jns 0x401ba8
lea ecx, [ebp - 0x140]
call fcn.00414865
mov dword [ebp - 0x38], 0xb24c
mov dword [ebp - 0x30], 0x62d
mov dword [ebp - 0x3c], 0xfffffffd
mov dword [ebp - 0x44], 0x8451d77f
mov dword [ebp - 0x48], 0x413053bf
mov dword [ebp - 0x14], 0
jmp 0x401d2b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6d0], 0x5a83d87e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x401d1a
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x6c8]
mov eax, dword [ebp - 0x6c8]
xor ecx, ecx
cmp eax, 0x659ea4d5
setge cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x6c8]
add eax, dword [ebp - 0x3c]
push 0
pop eax
setns al
mov ecx, dword [ebp - 0x6d0]
imul ecx, eax
mov eax, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x28], 0x223a
mov dword [ebp - 0x20], 0xaacee0
cmp dword [ebp - 0x28], 0x24f3
jle 0x401dcf
xor edi, edi
xor esi, esi
xor ebx, ebx
lea eax, [ebx + esi]
and eax, edi
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc ebx
cmp ebx, 0x18bf
jl 0x401da2
inc esi
cmp esi, 0x7a8d
jl 0x401da0
inc edi
cmp edi, 0x2ba3
jl 0x401d9e
mov dword [ebp - 0x40], 0x7633
cmp dword [ebp - 0x40], 0x787a
jle 0x401e37
push 0
call dword [0xaca034]
xor edi, edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x30], 0xe51
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x44], 0x7a76
mov eax, edi
and eax, ebx
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
add ebx, esi
dec dword [ebp - 0x44]
jne 0x401e01
inc esi
cmp esi, 0x55e9
jl 0x401df8
dec edi
dec dword [ebp - 0x30]
jne 0x401df6
mov edi, dword [ebp - 0x3c]
inc edi
mov dword [ebp - 0x3c], edi
cmp edi, 0x78c8
jl 0x401dec
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x14c]
call fcn.00414793
and dword [ebp - 4], 0
cmp dword [ebp - 0x40], 0x7419
jge 0x401e62
mov edx, 0xaacf30
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
jmp 0x401e89
xor eax, eax
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x44], 0x706b
cmp dword [ebp - 0x44], 0x71b4
jle 0x401ecc
mov esi, eax
mov edi, eax
mov eax, edi
or eax, esi
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc edi
cmp edi, 0x7188
jl 0x401ea6
inc esi
cmp esi, 0x18f8
push 0
pop eax
jl 0x401ea4
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x44], 0x6df6
jge 0x401eee
mov edx, 0xaacfc0
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
jmp 0x401f15
xor eax, eax
xor edi, edi
inc edi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x401f3c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14c]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x401f22
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jg 0x402181
mov dword [ebp - 0x2c], 0x5a9cea44
mov dword [ebp - 0x44], 0xfffffff9
mov dword [ebp - 0x30], 0xf6c9
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x48], eax
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x1c]
xor edx, edx
mov edi, dword [ebp - 0x14c]
cmp dword [edi + eax*4], 0x41a9
setge dl
xor ecx, ecx
cmp dword [edi + esi*4], edx
setg cl
xor eax, eax
mov edx, dword [ebp - 0x48]
cmp dword [edi + edx*4], ecx
setge al
cmp eax, dword [edi + ebx*4]
je 0x401fa9
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14c]
cmp dword [eax + ecx*4], 0
jne 0x401fa9
xor ebx, ebx
jmp 0x401fac
xor ebx, ebx
inc ebx
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x1c]
xor ecx, ecx
mov edx, dword [ebp - 0x14c]
cmp dword [edx + eax*4], ebx
setge cl
xor eax, eax
cmp dword [edx + esi*4], ecx
setg al
imul eax, dword [edx + edi*4]
neg eax
je 0x402095
mov dword [ebp - 0x14], 0xffffffff
xor eax, eax
mov dword [ebp - 0x14], eax
xor edi, edi
inc edi
cmp dword [ebp - 0x14], edi
jg 0x40212a
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x40208d
mov dword [ebp - 0x44], 0x4e6c
cmp dword [ebp - 0x44], 0x4ff3
jle 0x40203e
call dword [0xaca2a4]
xor esi, esi
xor edi, edi
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc edi
cmp edi, 0x2091
jl 0x402016
inc esi
cmp esi, 0x3ce2
jl 0x402014
xor edi, edi
inc edi
push edi
call dword [0xaca440]
mov dword [ebp - 4], 4
cmp dword [ebp - 0x44], 0x4a87
jge 0x402064
mov edx, 0xaad040
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
jmp 0x40208b
xor eax, eax
inc dword [ebp - 0x14]
jmp 0x401fe6
mov dword [ebp - 0x3c], 4
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x4e0]
call fcn.00414793
mov dword [ebp - 0x14], 0
jmp 0x4020c4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4e0]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4020b4
mov eax, dword [ebp - 0x3c]
dec eax
neg eax
sbb eax, eax
neg eax
cmp eax, 0x9289
je 0x4020dd
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14c]
mov edx, 0x93c86992
cmp edx, dword [eax + ecx*4]
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x4e0]
mov dword [eax], 0x3e8ea471
mov dword [ebp - 0x38], 0x3e8ea471
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x4e0]
call fcn.00414865
xor edi, edi
inc edi
jmp 0x40212d
push 2
pop ebx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
mov ecx, ebx
sub ecx, eax
mov eax, dword [ebp - 0x14c]
cmp ecx, dword [eax + edx*4]
jg 0x40215a
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
mov esi, 0x89be308d
cmp esi, eax
sbb eax, eax
inc eax
cmp edi, eax
sbb eax, eax
neg eax
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x1c]
jmp 0x401f3f
lea ecx, [ebp - 0x14c]
call fcn.00414865
mov dword [ebp - 4], 6
cmp dword [ebp - 0x28], 0x20b0
jge 0x4021a9
mov edx, dword [ebp - 0x20]
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
jmp 0x4021d3
push ebx
lea ecx, [ebp - 0x170]
call fcn.00414793
mov dword [ebp - 0x18], 0xf43b7c7c
mov dword [ebp - 0x34], 0xd210ec32
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x40220f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x248], 0xea5d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4021f7
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x40222f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x248], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x402217
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x40225c
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x48], 0xdfad5bef
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x14], eax
jmp 0x402253
mov dword [ebp - 0x44], 0xb5cf1c94
dec dword [ebp - 0x44]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffeb
jl 0x402246
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe2
jg 0x402234
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], 0x6dd2
cmp dword [ebp - 0x30], 0x6f6c
jle 0x4022c9
mov esi, eax
mov dword [ebp - 0x44], eax
mov edi, esi
mov ebx, 0xfb
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xd0c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd0c]
call fcn.00414c33
dec edi
dec ebx
jne 0x402281
mov esi, dword [ebp - 0x44]
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x6ca1
jl 0x40227a
xor edi, edi
inc edi
push 2
pop ebx
mov dword [ebp - 0x38], 0xf1dbeccc
mov dword [ebp - 4], 8
cmp dword [ebp - 0x30], 0x6a80
jge 0x4022eb
push 0xaad0f0
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x402319
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], eax
push 4
lea ecx, [ebp - 0x5c4]
call fcn.00414793
mov dword [ebp - 0x18], 0
jmp 0x402346
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2d8], 9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x402335
mov dword [ebp - 0x18], 0
jmp 0x402363
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5c4]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x402354
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setl dl
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
xor ecx, ecx
cmp edx, 0x16369387
setg cl
mov eax, dword [ebp - 0x3c]
sub eax, ecx
cmp eax, dword [ebp - 0x14]
jle 0x4023b8
xor eax, eax
cmp dword [ebp - 0x3c], eax
jne 0x4023ba
mov ecx, eax
jmp 0x4023bc
xor eax, eax
mov ecx, edi
cmp ecx, dword [ebp - 0x14]
jle 0x4023c8
cmp dword [ebp - 0x38], eax
mov ecx, edi
jne 0x4023ca
mov ecx, eax
mov dword [ebp - 0x2d8], ecx
mov eax, dword [ebp - 0x5c4]
mov dword [eax], ecx
mov eax, dword [ebp - 0x38]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x5c4]
call fcn.00414865
mov dword [ebp - 0x40], 0x68bb4aad
mov dword [ebp - 0x48], 0xcec51938
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0xa439beb0
mov dword [ebp - 0x18], 0x1265
push 4
lea ecx, [ebp - 0x48c]
call fcn.00414793
mov dword [ebp - 0x14], 0
jmp 0x402444
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48c]
mov dword [eax + ecx*4], 0xcdb8faaa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x402431
inc dword [ebp - 0x18]
mov dword [ebp - 0x18], 0
push 3
pop esi
cmp dword [ebp - 0x18], esi
jg 0x40249b
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x48c]
mov eax, dword [esi + eax*4]
xor ecx, ecx
cmp eax, dword [esi + edx*4]
setg cl
mov dword [esi + edi*4], ecx
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x40248d
push eax
call dword [0xaca320]
inc dword [ebp - 0x18]
push 3
pop esi
cmp dword [ebp - 0x18], esi
jle 0x40245c
xor edi, edi
inc edi
lea ecx, [ebp - 0x48c]
call fcn.00414865
mov dword [ebp - 0x34], 0x5d6c05ba
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x4024cf
push 0x2021
push 0x242f
push 0x1d76
push eax
call dword [0xaca40c]
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x4024e2
push eax
push eax
call dword [0xaca090]
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4024fa
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x170]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4024e7
mov dword [ebp - 0x14], 0xb9f9b31
mov dword [ebp - 0x14], 0x12
jmp 0x402598
mov dword [ebp - 0x44], 0x8d13034d
mov edx, dword [ebp - 0x44]
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, 0x7a98815
setle cl
sub edx, ecx
add edx, 0x3d1b
je 0x40254e
mov byte [ebp - 0x22], 0
cmp byte [ebp - 0x22], 0
je 0x40257e
push 0x1ab8
call dword [0xaca084]
jmp 0x40257e
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x40257e
push eax
push 0x23b6
push 0x1323
push 0x2184
push 0xba0
push 0x1a45
push 0x1ca5
push eax
call dword [0xaca2bc]
mov byte [ebp - 0x22], 0
cmp byte [ebp - 0x22], 0
je 0x402595
push 0
push 0x170d
call dword [0xaca428]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x14
je 0x402512
mov dword [ebp - 0x4c], edi
cmp dword [ebp - 0x4c], 0
jl 0x403ae1
push esi
lea ecx, [ebp - 0x564]
call fcn.00414793
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], 0
jmp 0x4025da
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x564]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4025c7
mov dword [ebp - 0x14], 0
jmp 0x4025fa
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x564]
cmp dword [eax + ecx*4], 0
jne 0x4025ff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x4025e8
lea ecx, [ebp - 0x564]
call fcn.00414865
mov dword [ebp - 0x2c], 0xa3205f5a
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x44], 0xffffffff
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x402641
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x17c], 0xe8edf1fe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x402629
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x402662
push eax
push 0x3e1
push 0x2345
push 0xee4
call dword [0xaca07c]
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], ebx
jg 0x402743
mov dword [ebp - 0x18], 0xd37ad435
mov dword [ebp - 0x34], 0x3e8f0887
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], eax
jl 0x4026d2
mov dword [ebp - 0x14], 0xfffffff7
mov dword [ebp - 0x14], eax
jmp 0x4026b5
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
jg 0x4026b2
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x17c], 0
jne 0x4026b0
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x40269b
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x402690
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x4026cd
push eax
push eax
call dword [0xaca328]
xor eax, eax
dec dword [ebp - 0x18]
jns 0x402684
mov dword [ebp - 0x44], edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp + eax*4 - 0x17c]
mov eax, dword [ebp - 0x44]
xor ebx, ebx
cmp eax, ecx
setge bl
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x17c]
xor edx, edx
cmp ebx, eax
setle dl
mov eax, dword [ebp - 0x17c]
xor ecx, ecx
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0x250042
setge al
mov edx, dword [ebp - 0x17c]
sub edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x17c]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x174], ecx
inc dword [ebp - 0x38]
push 2
pop ebx
cmp dword [ebp - 0x38], ebx
push 0
pop eax
jle 0x40266e
mov dword [ebp - 0x34], 0xf323
mov dword [ebp - 0x48], 0xafe497d6
mov dword [ebp - 0x3c], 0x213c
cmp dword [ebp - 0x3c], 0x228b
jle 0x4027d8
push eax
push 0xf7e
push 0x68d
push eax
call dword [0xaca29c]
xor edi, edi
mov dword [ebp - 0x30], edi
mov ebx, edi
mov dword [ebp - 0x44], 0x76a5
xor esi, esi
mov eax, esi
or eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xacc]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xacc]
call fcn.00414c33
inc esi
cmp esi, 0x45e5
jl 0x402783
dec ebx
dec dword [ebp - 0x44]
jne 0x402781
mov edi, dword [ebp - 0x30]
inc edi
mov dword [ebp - 0x30], edi
cmp edi, 0x6d3f
jl 0x402778
xor edi, edi
inc edi
push 3
pop esi
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x3c], 0x1e1e
jge 0x4027f3
push 0xaad168
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x402821
mov dword [ebp - 0x48], 0xfffffffe
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], 0xc8d3c891
mov dword [ebp - 0x20], eax
push edi
lea ecx, [ebp - 0x828]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x402868
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x828]
mov dword [eax + ecx*4], 0xb963ab1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x40284e
xor eax, eax
cmp dword [ebp - 0x48], eax
je 0x40289f
mov dword [ebp - 0x44], 0xffffffff
inc dword [ebp - 0x44]
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x4029e8
push 0x1fc6
push eax
push 0xceb
push 0x1ddf
call dword [0xaca460]
jmp 0x4029e8
movdqa xmm0, xmmword [0xabadc0]
movdqu xmmword [ebp - 0x8d0], xmm0
lea ecx, [ebp - 0x8d0]
lea eax, [ebp - 0x8c0]
push ecx
push eax
push ecx
lea ecx, [ebp - 0xa10]
call fcn.0041483f
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x48], 0x17b844a7
mov dword [ebp - 0x48], 0x32cf415d
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x48], 0xcd49598a
mov dword [ebp - 0x48], 0xfa1e1c5a
push esi
lea ecx, [ebp - 0x814]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x402922
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x814]
mov dword [eax + ecx*4], 0x12530a9b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x402908
xor eax, eax
mov dword [ebp - 0x30], 0x56bc
cmp dword [ebp - 0x30], 0x58d1
jle 0x4029ac
push eax
push 0x17c6
push eax
push eax
push 0xc50
push 0x1f21
push 0x8a6
push 0xb01
call dword [0xaca0a4]
xor ebx, ebx
xor esi, esi
xor edi, edi
mov eax, esi
cdq
idiv edi
mov eax, ebx
mov ecx, edx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc edi
cmp edi, 0x5504
jl 0x40295a
inc esi
cmp esi, 0x2202
jl 0x402958
inc ebx
cmp ebx, 0x1f93
jl 0x402956
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x7f1
push 0x2414
push 0x9ac
push eax
call dword [0xaca03c]
dec dword [ebp - 0x44]
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x30], 0x53f8
jge 0x4029ce
mov edx, 0xaad214
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x814]
call fcn.00414865
lea ecx, [ebp - 0xa10]
call fcn.00414865
lea ecx, [ebp - 0x828]
call fcn.00414865
mov dword [ebp - 0x44], 0x8ab
cmp dword [ebp - 0x44], 0xa34
jle 0x402a67
push 0
call dword [0xaca04c]
xor ebx, ebx
xor esi, esi
xor edi, edi
mov eax, edi
and eax, esi
xor eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xc1c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc1c]
call fcn.00414c33
inc edi
cmp edi, 0x60ef
jl 0x402a11
inc esi
cmp esi, 0x6af0
jl 0x402a0f
inc ebx
cmp ebx, 0x7aae
jl 0x402a0d
push 0
call dword [0xaca438]
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x44], 0x579
jge 0x402a82
push 0xaad264
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
xor edi, edi
inc edi
mov dword [ebp - 0x1c], 9
push 3
lea ecx, [ebp - 0x11c]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x402ac2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x11c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x402aab
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x402b0c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xe8], 0x40e11a79
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x402afb
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x1c], 0xdf62
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setle dl
sub edx, dword [ebp - 0x1c]
mov eax, 0xafd11d96
cmp eax, edx
sbb eax, eax
neg eax
xor edx, edx
cmp eax, 0x78acc4b7
setg dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x11c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax]
mov dword [ebp - 0xe8], eax
xor eax, eax
cmp dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x11c]
je 0x402b7f
cmp dword [esi + 4], 0xfffffffd
mov ecx, edi
jl 0x402b81
mov ecx, eax
mov esi, dword [esi]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, edi
setge dl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0xc167
setl al
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
add eax, esi
imul eax, esi
test eax, eax
je 0x402cb0
xor eax, eax
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x48], 0xffffffff
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x11c]
imul ecx, dword [eax]
mov dword [eax + 8], ecx
cmp dword [ebp - 0xe4], 0x6062
jg 0x402c10
xor eax, eax
cmp dword [ebp - 0x1f4], eax
mov edx, eax
je 0x402c12
mov edx, edi
mov eax, dword [ebp - 0x1f4]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x28], 0x17
jmp 0x402ca5
mov dword [ebp - 0x38], 0x6b93dced
mov dword [ebp - 0x48], 0xac96aae1
dec dword [ebp - 0x38]
mov eax, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x11c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x1c]
jne 0x402c68
cmp dword [ebp - 0x1f4], eax
mov ecx, eax
je 0x402c6a
mov ecx, edi
mov eax, dword [ebp - 0xe8]
sub ecx, eax
mov eax, dword [ebp - 0xe8]
imul eax, ecx
cmp dword [ebp - 0x38], eax
jl 0x402c86
mov eax, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, 0x65b818e9
setge cl
sub ecx, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x38]
mov dword [ebp - 0x48], ecx
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff0
jl 0x402c2b
jmp 0x402ddc
mov dword [ebp - 0x48], 0xfffffff6
mov dword [ebp - 0x48], 0
push edi
lea ecx, [ebp - 0x840]
call fcn.00414793
mov dword [ebp - 0x30], 5
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x402cf2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x840]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x402cdb
xor eax, eax
mov dword [ebp - 0x48], 0x5426bec1
mov dword [ebp - 0x1c], 0xfffffff1
cmp dword [ebp - 0x1c], 0xfffffff4
jg 0x402dd1
mov dword [ebp - 0x48], 5
mov dword [ebp - 0x48], 0x8d0dd081
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 0x4576
cmp dword [ebp - 0x44], 0x4607
jle 0x402d62
push eax
push 0x1581
call dword [0xaca410]
xor esi, esi
mov edi, esi
mov ebx, 0x2554
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
dec edi
dec ebx
jne 0x402d43
inc esi
cmp esi, 0x6345
jl 0x402d3c
xor edi, edi
inc edi
mov dword [ebp - 0x48], 0x7422e233
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x44], 0x41b0
jge 0x402d88
mov edx, 0xaad2c4
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
jmp 0x402daf
mov dword [ebp - 0x48], 0x78c6c423
mov dword [ebp - 0x48], 0xa052c454
mov dword [ebp - 0x48], 5
inc dword [ebp - 0x30]
inc dword [ebp - 0x1c]
xor eax, eax
jmp 0x402d00
lea ecx, [ebp - 0x840]
call fcn.00414865
lea ecx, [ebp - 0x11c]
call fcn.00414865
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x170]
cmp dword [eax + ecx*4], 0
jne 0x402e0c
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x170]
cmp dword [eax + ecx*4], 0
jne 0x402e0c
xor eax, eax
jmp 0x402e0e
mov eax, edi
mov dword [ebp - 0x40], edi
mov esi, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, 0xfc02
setg cl
add ecx, 0x42bb
xor edx, edx
mov eax, dword [ebp - 0x170]
cmp ecx, dword [eax]
setne dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x170]
add edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
cmp eax, edx
setl bl
cmp dword [ebp - 0x40], 0xfff6
sbb eax, eax
inc eax
add ebx, eax
xor ecx, ecx
mov eax, dword [ebp - 0x170]
cmp ebx, dword [eax + 4]
setl cl
mov eax, 0xa19820b2
cmp eax, ecx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, dword [ebp - 0x4c]
jne 0x402e8f
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xda2a
setle cl
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x48], 0xffffffff
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x14], eax
jmp 0x402ec5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x58], 0x94a1888
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x402eb7
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x58], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
push 2
pop ebx
cmp dword [ebp - 0x1c], eax
jg 0x4030a9
push ebx
lea ecx, [ebp - 0x1cc]
call fcn.00414793
mov dword [ebp - 0x44], 8
mov dword [ebp - 0x48], 0xe7675daa
mov dword [ebp - 0x18], 0
jmp 0x402f15
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd8], 0x8bb4aad9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x402f04
mov dword [ebp - 0x18], 0
jmp 0x402f36
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1cc]
mov dword [eax + ecx*4], 0x5d3c
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x402f23
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x58], 0
je 0x402f66
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x402f58
push eax
call dword [0xaca28c]
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x40308c
jmp 0x40308f
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], eax
jl 0x402faa
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x402f93
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x58], 9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x402f7e
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x402fa5
push eax
call dword [0xaca2f4]
xor eax, eax
dec dword [ebp - 0x38]
jns 0x402f73
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x40308c
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfff7
ja 0x402fca
xor eax, eax
cmp dword [ebp - 0x58], eax
mov ecx, eax
je 0x402fcc
mov ecx, edi
mov eax, dword [ebp - 0x1c]
imul eax, ecx
mov dword [ebp - 0x58], eax
mov ecx, 0xd10fbf2b
cmp ecx, eax
sbb eax, eax
inc eax
add eax, dword [ebp - 0xd4]
je 0x403000
mov eax, dword [ebp - 0x1cc]
cmp dword [eax], 0
je 0x403000
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x58], 0
je 0x403000
mov edx, edi
jmp 0x403002
xor edx, edx
xor ecx, ecx
mov eax, dword [ebp - 0x1cc]
cmp edx, dword [eax]
setl cl
mov eax, dword [ebp - 0xd4]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, 0x5687c417
neg edx
sbb edx, edx
inc edx
mov ecx, dword [ebp - 0x1c]
imul ecx, edx
xor edx, edx
mov eax, dword [ebp - 0x1cc]
cmp ecx, dword [eax]
setle dl
cmp edx, 0xfffffff7
jne 0x403048
xor eax, eax
cmp dword [ebp - 0x58], eax
mov edx, eax
je 0x40304a
mov edx, edi
mov eax, dword [ebp - 0xd4]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0xd2bb
setg al
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x58]
mov eax, edi
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x1cc]
call fcn.00414865
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0
jle 0x402ee1
xor eax, eax
mov dword [ebp - 0x2c], eax
push 3
pop esi
cmp dword [ebp - 0x2c], edi
jg 0x403ad9
mov dword [ebp - 0x18], 0xf9d7
mov dword [ebp - 0x30], 0xfffffffc
mov dword [ebp - 0x3c], 0x95ed
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x44], 0x6fbe
cmp dword [ebp - 0x44], 0x70c0
jle 0x40313e
mov esi, eax
jmp 0x4030e6
xor eax, eax
mov edi, eax
mov eax, esi
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xafc]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xafc]
call fcn.00414c33
inc edi
cmp edi, 0x6597
jl 0x4030e8
inc esi
cmp esi, 0xcc8
jl 0x4030e4
push 0
push 0x1cd5
call dword [0xaca070]
xor edi, edi
inc edi
mov dword [ebp - 0x28], 0x55eec80f
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x44], 0x6c93
jge 0x403160
push 0xaad318
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x40318a
push edi
lea ecx, [ebp - 0x394]
call fcn.00414793
mov dword [ebp - 0x14], 0
jmp 0x4031af
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x394]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x40319f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setle dl
cmp edx, 0xa9017ca4
sbb eax, eax
neg eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov ecx, edi
sub ecx, eax
jne 0x4031e6
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
add edx, 5
cmp edx, dword [ebp - 0x18]
jl 0x403300
mov dword [ebp - 0x44], 0xffffffff
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], eax
jg 0x40330a
push ebx
lea ecx, [ebp - 0x4a4]
call fcn.00414793
mov dword [ebp - 0x1c], 0xe74fd574
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x403256
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4a4]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x403240
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], eax
jg 0x403276
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x394]
cmp dword [eax + ecx*4], 0
jne 0x403276
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0
jle 0x40325e
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4a4]
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xfffffffd
setle cl
mov eax, dword [ebp - 0x394]
imul ecx, dword [eax]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp eax, ecx
setle dl
add edx, 5
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
cmp ecx, 0xffffffff
setl dl
mov eax, dword [ebp - 0x1c]
add eax, esi
imul edx, eax
cmp edx, dword [ebp - 0x1c]
je 0x4032d7
xor eax, eax
cmp dword [ebp - 0x20], eax
mov edx, eax
je 0x4032d9
mov edx, edi
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x4a4]
call fcn.00414865
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0
jle 0x403223
jmp 0x40330a
mov dword [ebp - 0x20], 0xfffffffc
inc dword [ebp - 0x20]
lea ecx, [ebp - 0x394]
call fcn.00414865
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x44], 0x105d
cmp dword [ebp - 0x44], 0x1361
jle 0x40338f
xor eax, eax
mov dword [ebp - 0x30], eax
xor ebx, ebx
mov dword [ebp - 0x20], ebx
xor esi, esi
mov dword [ebp - 0x48], eax
mov ecx, ebx
mov ebx, eax
shl ebx, cl
xor edi, edi
mov edx, ebx
mov ecx, esi
sar edx, cl
mov dword [ebp - 0x48], edx
mov eax, edi
and eax, edx
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc edi
cmp edi, 0xa64
mov edx, dword [ebp - 0x48]
jl 0x40334c
inc esi
cmp esi, 0x48dc
jl 0x403341
mov ebx, dword [ebp - 0x20]
inc ebx
mov dword [ebp - 0x20], ebx
cmp ebx, 0x7fe5
mov eax, dword [ebp - 0x30]
jl 0x403336
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x204c
jl 0x403331
mov ecx, 0xfffa
mov dword [ebp - 0x48], ecx
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x44], 0xe0e
jge 0x4033b6
mov edx, 0xaad388
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
xor ebx, ebx
inc ebx
push 3
lea ecx, [ebp - 0x334]
call fcn.00414793
mov dword [ebp - 0x670], 0xfffffffc
mov dword [ebp - 0x66c], 0xfffffffc
mov dword [ebp - 0x668], 0xfffffffc
mov dword [ebp - 0x664], 0xfffffffc
push 4
lea ecx, [ebp - 0x31c]
call fcn.00414793
mov dword [ebp - 0x20], 0x8eb5ea28
mov dword [ebp - 0x20], 0xfb26c4f3
mov dword [ebp - 0x20], 0xcd6a9b03
mov dword [ebp - 0x1c], 0
jmp 0x40344a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x334]
mov dword [eax + ecx*4], 0xb5486b6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x403437
mov dword [ebp - 0x1c], 0
jmp 0x403469
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x31c]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x403459
mov dword [ebp - 0x1c], 0
jmp 0x403489
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x7ec], 0xa2ef7e29
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x403478
mov esi, dword [ebp - 0x31c]
mov edi, dword [ebp - 0x334]
mov edx, dword [edi]
add edx, 0xea2c
mov dword [ebp - 0x670], edx
mov ecx, dword [esi + 8]
lea eax, [ecx - 1]
mov dword [esi + 8], eax
cmp ecx, edx
jge 0x4034ba
mov eax, ebx
jmp 0x4034bc
xor eax, eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [edi + 8]
add ecx, 0x3cfc
add edx, ecx
cmp dword [ebp - 0x20], 9
sbb eax, eax
neg eax
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x7e8]
mov eax, dword [ebp - 0x334]
mov edx, dword [eax]
xor ecx, ecx
mov eax, dword [ebp - 0x31c]
cmp dword [eax + 4], edx
setle cl
neg ecx
xor eax, eax
cmp ecx, dword [edi + 8]
setne al
imul eax, eax, 0x4b58
dec eax
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x31c]
call fcn.00414865
lea ecx, [ebp - 0x334]
call fcn.00414865
xor eax, eax
xor edi, edi
inc edi
cmp dword [ebp - 0x3c], eax
mov ecx, eax
je 0x40353d
mov ecx, edi
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
xor eax, eax
test ecx, ecx
sete al
xor edx, edx
cmp eax, 0xffffffff
setge dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0xfffffffd
movdqa xmm0, xmmword [0xabade0]
movdqu xmmword [ebp - 0x930], xmm0
lea ecx, [ebp - 0x930]
lea eax, [ebp - 0x920]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x858]
call fcn.0041483f
mov dword [ebp - 0x18], 0x4e1a3622
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], 3
xor eax, eax
cmp dword [ebp - 0x14], eax
jl 0x4036b4
mov dword [ebp - 0x18], eax
jmp 0x4035de
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x4035db
push eax
push 0x6cc
call dword [0xaca478]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x4035c4
mov dword [ebp - 0x20], 0x2860
cmp dword [ebp - 0x20], 0x2af3
jle 0x40363e
mov esi, eax
jmp 0x4035fa
xor eax, eax
mov edi, eax
mov ebx, 0x2343
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xa9c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xa9c]
call fcn.00414c33
add edi, esi
dec ebx
jne 0x403601
inc esi
cmp esi, 0x3ce9
jl 0x4035f8
mov dword [ebp - 0x18], 0
xor edi, edi
inc edi
cmp dword [ebp - 0x18], 3
jg 0x40366a
mov dword [ebp - 0x48], edi
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x858]
cmp dword [eax + ecx*4], edx
sete dl
mov dword [ebp - 0x48], edx
inc dword [ebp - 0x18]
jmp 0x403648
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x20], 0x25b0
jge 0x403685
push 0xaad408
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4036ac
dec dword [ebp - 0x14]
jmp 0x4035b4
lea ecx, [ebp - 0x858]
call fcn.00414865
mov dword [ebp - 0x18], 0x8100c430
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x2a8]
call fcn.00414793
mov dword [ebp - 0x20], 0xa130dfdd
mov dword [ebp - 0x28], 0x40c3f30
mov dword [ebp - 0x48], 0xdb62
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x1c], 0
jmp 0x40370d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2a8]
mov dword [eax + ecx*4], 0x6085e071
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x4036fa
mov dword [ebp - 0x1c], 0
jmp 0x40372c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x86c], 0xffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x40371b
mov esi, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x18]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2a8]
mov eax, dword [eax]
sub eax, ecx
mov ecx, dword [ebp - 0x18]
imul ecx, eax
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setg dl
or ecx, 0xffffffff
sub ecx, edx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x28], 0
jmp 0x40381a
mov dword [ebp - 0x38], 0xfffffffd
mov eax, dword [ebp - 0x864]
xor ecx, ecx
test eax, eax
setns cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x86c]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2a8]
mov eax, dword [edx]
sub eax, dword [esi + 4]
neg eax
sbb eax, eax
add eax, 0xfffffffb
imul eax, dword [edx + ecx*4]
mov dword [edx], eax
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x403811
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x40380e
push eax
push eax
push eax
call dword [0xaca44c]
xor eax, eax
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0xfffffff7
jle 0x4037fa
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jle 0x4037a2
lea ecx, [ebp - 0x2a8]
call fcn.00414865
xor eax, eax
mov byte [ebp - 0x22], al
mov dword [ebp - 0x94], 0x799a
mov dword [ebp - 0x90], 0x799a
mov dword [ebp - 0x8c], 0x799a
mov dword [ebp - 0x88], 0x799a
mov dword [ebp - 0x1c], 0xfffffffb
mov dword [ebp - 0x30], 0xffffffff
push 3
pop esi
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], eax
jl 0x403a4e
jmp 0x403878
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], 0x38be40e8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x4038a4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa5c], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x40388b
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x4038ba
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x94], 5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4038a9
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x94], ecx
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], 0
jl 0x403a42
cmp byte [ebp - 0x22], 0
je 0x403acf
push esi
lea ecx, [ebp - 0x624]
call fcn.00414793
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], 0
jmp 0x403a7f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x624]
mov dword [eax + ecx*4], 0x2fd41e55
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x403a6c
mov eax, dword [ebp - 0x624]
dec dword [eax]
mov dword [ebp - 0x14], ebx
xor eax, eax
cmp dword [ebp - 0x14], eax
jl 0x403ab4
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x403aaf
lea ecx, [ebp - 0x624]
call fcn.00414865
push 0x20e9
push 0x86c
call dword [0xaca09c]
inc dword [ebp - 0x2c]
xor eax, eax
jmp 0x4030af
dec dword [ebp - 0x4c]
jmp 0x4025a5
lea ecx, [ebp - 0x170]
call fcn.00414865
push ebx
lea ecx, [ebp - 0x884]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x403b1c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x884]
mov dword [eax + ecx*4], 0xdf75dcec
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x403b02
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x403b3c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x194], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x403b24
xor eax, eax
mov dword [ebp - 0x194], edi
cmp dword [ebp - 0x194], eax
jl 0x403b94
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], edi
cmp dword [ebp - 0x40], eax
jl 0x403b8c
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x403b66
call dword [0xaca474]
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x403b87
push eax
push 0x11b4
push 0x398
push 0xefd
call dword [0xaca2c8]
xor eax, eax
dec dword [ebp - 0x40]
jns 0x403b55
dec dword [ebp - 0x194]
jns 0x403b4a
lea ecx, [ebp - 0x884]
call fcn.00414865
mov dword [ebp - 0x38], 0xb24c
mov dword [ebp - 0x44], 0x62d
mov dword [ebp - 0x30], 0xfffffffd
mov dword [ebp - 0x20], 0x8451d77f
mov dword [ebp - 0x34], 0x413053bf
mov dword [ebp - 0x14], 0
jmp 0x403bdc
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6b0], 0x5a83d87e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x403bcb
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x6a8]
mov eax, dword [ebp - 0x6a8]
xor ecx, ecx
cmp eax, 0x659ea4d5
setge cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x6a8]
push 0
pop eax
setns al
mov ecx, dword [ebp - 0x6b0]
imul ecx, eax
mov eax, dword [ebp - 0x44]
sub ecx, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x40], 0xd69f4288
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x30], 0x1fc2da8a
push 4
lea ecx, [ebp - 0x34c]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x403c7a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34c]
mov dword [eax + ecx*4], 0x68939f5f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x403c5f
xor eax, eax
cmp dword [ebp - 0x40], 0x37b1891f
jl 0x403c88
cmp dword [ebp - 0x40], eax
je 0x403c8a
mov eax, edi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x28], 5
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0x8a06
setne cl
mov eax, dword [ebp - 0x28]
mov esi, 0xfffa
cmp esi, eax
sbb eax, eax
inc eax
sub eax, ecx
jne 0x403cba
cmp dword [ebp - 0x28], eax
je 0x403cbc
mov eax, edi
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0x1da7bc99
jl 0x403d1c
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0xc], 0
je 0x403d1c
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x403cf5
push 0x1dfa
push 0x17b7
push 0x1742
call dword [0xaca0a0]
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x403d14
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x403d11
push eax
push 0x1dbf
call dword [0xaca444]
xor eax, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x16
jge 0x403cfa
jmp 0x403d4d
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x20], 0x50faeb38
mov dword [ebp - 0x48], 0x99740826
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 4
setne cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x34c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x34c]
call fcn.00414865
mov dword [ebp - 0x34], 0xe125d16d
push 4
lea ecx, [ebp - 0x4bc]
call fcn.00414793
mov dword [ebp - 0x14], 0
jmp 0x403d88
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4bc]
mov dword [eax + ecx*4], 0xf4288a13
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x403d75
mov byte [ebp - 0x22], 0
cmp byte [ebp - 0x22], 0
je 0x403da3
push 0x154c
call dword [0xaca088]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4bc]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x4bc]
call fcn.00414865
push ebx
lea ecx, [ebp - 0x700]
call fcn.00414793
mov dword [ebp - 0x20], 0x13f
cmp dword [ebp - 0x20], 0x288
jle 0x403e47
xor edx, edx
mov dword [ebp - 0x14], edx
xor ebx, ebx
xor esi, esi
xor edi, edi
lea ecx, [edi + esi]
mov eax, ebx
sar eax, cl
or eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xb2c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb2c]
call fcn.00414c33
inc edi
cmp edi, 0x7cfc
mov edx, dword [ebp - 0x14]
jl 0x403de1
inc esi
cmp esi, 0x399f
jl 0x403ddf
inc ebx
cmp ebx, 0x6d4c
jl 0x403ddd
inc edx
mov dword [ebp - 0x14], edx
cmp edx, 0x2c9e
jl 0x403ddb
xor edi, edi
inc edi
push 2
pop ebx
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x20], 0xfffffe38
jge 0x403e62
push 0xaad464
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x403e90
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x403eb2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x700]
mov dword [eax + ecx*4], 0xdf75dcec
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x403e98
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x403ed2
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1a4], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x403eba
xor eax, eax
mov dword [ebp - 0x1a4], edi
cmp dword [ebp - 0x1a4], eax
jl 0x403f2a
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], edi
cmp dword [ebp - 0x40], eax
jl 0x403f22
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x403efc
call dword [0xaca474]
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x403f1d
push eax
push 0x11b4
push 0x398
push 0xefd
call dword [0xaca2c8]
xor eax, eax
dec dword [ebp - 0x40]
jns 0x403eeb
dec dword [ebp - 0x1a4]
jns 0x403ee0
lea ecx, [ebp - 0x700]
call fcn.00414865
mov dword [ebp - 0x38], 0x52cb1363
mov dword [ebp - 0x34], 0xccddd1d8
mov dword [ebp - 0x34], 0x6a205b29
mov dword [ebp - 0x34], edi
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x34], 0xff29acd4
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], ebx
jge 0x403f79
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x81c], 0xffffffff
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], ebx
jl 0x403f61
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], edi
jge 0x403f99
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x7fc], 5
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edi
jl 0x403f81
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], ebx
jge 0x403fb9
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0xa74], 0x5589b583
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], ebx
jl 0x403fa1
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], ebx
jge 0x403fd9
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x434], 0x2ff18c9a
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], ebx
jl 0x403fc1
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], edi
jg 0x4040f3
mov dword [ebp - 0x44], 0x2863
cmp dword [ebp - 0x44], 0x2bd4
jle 0x404043
mov ebx, eax
mov dword [ebp - 0x20], eax
mov esi, eax
mov edi, eax
mov eax, ebx
cdq
idiv esi
mov ebx, edx
mov eax, ebx
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc edi
cmp edi, 0x903
jl 0x404005
inc esi
cmp esi, 0x4557
push 0
pop eax
mov ebx, dword [ebp - 0x20]
jl 0x403ffc
inc ebx
mov dword [ebp - 0x20], ebx
cmp ebx, 0x95c
jl 0x403ffa
xor edi, edi
inc edi
push 2
pop ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x44], 0x279c
jge 0x404065
mov edx, 0xaad4b8
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
jmp 0x40408f
push 4
lea ecx, [ebp - 0x57c]
call fcn.00414793
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x14], 0
jmp 0x4040bf
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x57c]
mov dword [eax + ecx*4], 0x63126ff2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4040ac
dec dword [ebp - 0x430]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp + eax*4 - 0x81c]
mov eax, dword [ebp - 0x57c]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x57c]
call fcn.00414865
inc dword [ebp - 0x38]
xor eax, eax
jmp 0x403fdc
mov dword [ebp - 0x34], 0x48d327cb
mov dword [ebp - 0x34], 0xb5052061
mov dword [ebp - 0x34], 0x405b4019
push 3
lea ecx, [ebp - 0x780]
call fcn.00414793
mov dword [ebp - 0x34], 0x3af7
mov dword [ebp - 0x20], 0xfffffff8
mov dword [ebp - 0x18], 0
jmp 0x40413d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7b8], 0x8fc558ba
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x40412c
mov dword [ebp - 0x18], 0
jmp 0x40415e
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x780]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x40414b
dec dword [ebp - 0x20]
lea ecx, [ebp - 0x780]
call fcn.00414865
mov dword [ebp - 0x2c], 0xb24c
mov dword [ebp - 0x14], 0xfe0a8eac
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x40418f
cmp dword [ebp - 0x14], eax
jne 0x404194
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jne 0x404187
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x4041a4
call dword [0xaca2f0]
xor eax, eax
mov dword [ebp - 0x4c], 0x62d
mov dword [ebp - 0x3c], 0x146cdead
mov dword [ebp - 0x40], 8
mov dword [ebp - 0x14], 0x5b24
cmp dword [ebp - 0x14], 0x5c08
jle 0x404230
mov dword [ebp - 0x30], eax
mov ebx, eax
mov dword [ebp - 0x44], eax
mov esi, eax
mov dword [ebp - 0x20], eax
mov eax, ebx
cdq
idiv esi
mov edi, edx
mov ebx, 0x72ff
mov esi, dword [ebp - 0x30]
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc edi
dec ebx
jne 0x4041e5
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x37a8
mov ebx, dword [ebp - 0x44]
jl 0x4041d6
inc ebx
mov dword [ebp - 0x44], ebx
cmp ebx, 0x4188
push 0
pop eax
jl 0x4041d1
mov ecx, dword [ebp - 0x30]
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0xb30
jl 0x4041cc
xor edi, edi
inc edi
push 2
pop ebx
mov dword [ebp - 0x18], 0xfffe
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x14], 0x5ab3
jge 0x404256
mov edx, 0xaad510
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x404284
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x690], ebx
mov dword [ebp - 0x68c], ebx
mov dword [ebp - 0x688], ebx
mov dword [ebp - 0x684], ebx
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x48], 0xdcda6a44
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x4042d1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1ac], 0xfffffffe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4042b9
xor eax, eax
cmp dword [ebp - 0x1c], eax
jne 0x4042dd
cmp dword [ebp - 0x40], eax
mov edx, eax
je 0x4042df
mov edx, edi
mov eax, dword [ebp - 0x1ac]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x1ac]
xor edx, edx
cmp ecx, eax
setge dl
mov dword [ebp - 0x1ac], edx
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp eax, ecx
setl dl
mov dword [ebp - 0x690], edx
mov ecx, dword [ebp - 0x3c]
add ecx, edx
mov eax, dword [ebp - 0x18]
dec dword [ebp - 0x18]
cmp eax, ecx
jg 0x40432c
mov eax, edi
jmp 0x40432e
xor eax, eax
add eax, 8
je 0x404340
cmp dword [ebp - 0x1a8], 0
je 0x404340
mov edx, edi
jmp 0x404342
xor edx, edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, edx
setge cl
xor edx, edx
test ecx, ecx
setle dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, 0xa82a6f94
cmp eax, ecx
sbb edx, edx
inc edx
imul edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
neg ecx
je 0x4044ce
mov eax, 0x22f8dc70
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], eax
mov dword [ebp - 0x898], eax
mov dword [ebp - 0x894], eax
mov dword [ebp - 0x34], 0xfaa058a1
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x4043c3
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], 0
je 0x4043c0
push 0x1883
push eax
push eax
call dword [0xaca2ac]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x4043a8
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x20
jl 0x4044ee
mov dword [ebp - 0x20], 0xfff6
inc dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jg 0x4044c6
mov dword [ebp - 0x44], 0x159a
cmp dword [ebp - 0x44], 0x17b1
jle 0x404455
mov esi, eax
mov dword [ebp - 0x20], eax
mov edi, esi
mov ebx, 0xa38
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xc4c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc4c]
call fcn.00414c33
dec edi
dec ebx
jne 0x404409
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x4c31
jl 0x404402
xor eax, eax
push eax
push eax
call dword [0xaca334]
mov dword [ebp - 0x34], 0x61a7160c
mov dword [ebp - 4], 0x1e
cmp dword [ebp - 0x44], 0x12db
jge 0x404477
push 0xaad57c
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4044ad
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x998], 0x531e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x40449c
mov eax, dword [ebp - 0x990]
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x1c]
xor eax, eax
jmp 0x4043e3
inc dword [ebp - 0x18]
jmp 0x4043cc
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0
jmp 0x4044e6
cmp dword [ebp - 0x20], 0
jne 0x4044ec
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 5
jne 0x4044da
xor eax, eax
mov dword [ebp - 0x44], 0x68ec
cmp dword [ebp - 0x44], 0x6b13
jle 0x40455c
mov ebx, eax
jmp 0x404504
xor eax, eax
mov esi, eax
jmp 0x40450a
xor eax, eax
mov edi, eax
mov eax, esi
cdq
idiv edi
lea eax, [ebx + edx]
cdq
push edx
push eax
lea ecx, [ebp - 0xb5c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb5c]
call fcn.00414c33
inc edi
cmp edi, 0x24f5
jl 0x40450c
inc esi
cmp esi, 0x2aa5
jl 0x404508
inc ebx
cmp ebx, 0x775b
jl 0x404502
mov dword [ebp - 0x20], 0x2f34
cmp dword [ebp - 0x20], 0x30fb
jle 0x404595
xor edi, edi
xor esi, esi
mov eax, edi
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xac73d8
call fcn.00414568
inc esi
cmp esi, 0x7dd7
jl 0x404570
inc edi
cmp edi, 0x49e1
jl 0x40456e
mov dword [ebp - 4], 0x20
cmp dword [ebp - 0x20], 0x2d62
jge 0x4045b4
mov edx, 0xaad5e0
mov ecx, 0xac73d8
call fcn.00416a64
or dword [ebp - 4], 0xffffffff
xor ebx, ebx
inc ebx
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0xa439beb0
mov dword [ebp - 0x18], 0x1265
push 4
lea ecx, [ebp - 0x4d4]
call fcn.00414793
mov dword [ebp - 0x14], 0
jmp 0x404613
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4d4]
mov dword [eax + ecx*4], 0xcdb8faaa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x404600
inc dword [ebp - 0x18]
mov dword [ebp - 0x18], 0
jmp 0x404659
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x4d4]
mov eax, dword [esi + eax*4]
xor ecx, ecx
cmp eax, dword [esi + edx*4]
setg cl
mov dword [esi + edi*4], ecx
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x404656
push eax
call dword [0xaca320]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x404625
lea ecx, [ebp - 0x4d4]
call fcn.00414865
mov dword [ebp - 4], 0x22
cmp dword [ebp - 0x44], 0x66d9
jge 0x404685
push 0xaad5bc
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4046ac
mov dword [ebp - 0x30], 0xfffffffd
push 3
lea ecx, [ebp - 0x270]
call fcn.00414793
mov dword [ebp - 0x18], 0x6aabecba
mov dword [ebp - 0x20], 0xfffffffb
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x44], 0xda73a151
mov dword [ebp - 0x14], 0
jmp 0x4046f4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x270]
mov dword [eax + ecx*4], 0x313dd33a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4046e1
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x18], 2
jg 0x4048e5
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x38], 0x45c2f1fc
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x270]
mov ecx, dword [ebx + eax*4]
sub ecx, dword [ebx + 4]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebx + edx*4]
xor eax, eax
cmp ecx, dword [ebx + esi*4]
setne al
cmp eax, 0xa4d59ff4
sbb ecx, ecx
neg ecx
add ecx, dword [ebx + edi*4]
xor eax, eax
cmp ecx, 0x46bc2273
setne al
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x40]
cmp eax, 0x6b58
je 0x40477a
mov eax, dword [ebp - 0x270]
cmp dword [eax], 0
jne 0x40477a
xor ecx, ecx
jmp 0x40477d
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov ecx, 0xeda5
sub ecx, eax
jne 0x4047ab
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x4047ab
mov edx, eax
jmp 0x4047ae
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x270]
mov eax, dword [eax + ecx*4]
sub eax, edx
add eax, dword [ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x44]
imul eax, dword [ebp - 0x14]
mov ecx, 0xefa2
sub ecx, eax
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setge dl
add edx, 0x7581
je 0x4047fd
cmp dword [ebp - 0x40], 0
jne 0x4047f1
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x14], 0
jmp 0x4048c3
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x40480c
cmp dword [ebp - 0x14], eax
jne 0x404812
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 2
jle 0x404804
mov dword [ebp - 0x3c], 0x5be6
cmp dword [ebp - 0x3c], 0x5ceb
jle 0x404893
mov ebx, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x20], 0x2568
mov esi, eax
mov edi, eax
lea ecx, [edi + esi]
mov eax, ebx
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xcdc]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041455d
push eax
call fcn.004a3697
pop ecx
push 0
push 1
lea ecx, [ebp - 0xcdc]
call fcn.00414c33
inc edi
cmp edi, 0x5ada
jl 0x404835
inc esi
cmp esi, 0x146
push 0
pop eax
jl 0x404833
dec ebx
dec dword [ebp - 0x20]
jne 0x404831
mov ebx, dword [ebp - 0x30]
inc ebx
mov dword [ebp - 0x30], ebx
cmp ebx, 0x2500
jl 0x404827
mov byte [ebp - 0x22], al
mov dword [ebp - 4], 0x24
cmp dword [ebp - 0x3c], 0x5a48
jge 0x4048b1
push 0xaad658
call fcn.004a3697
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
cmp byte [ebp - 0x22], al
je 0x4048c3
push eax
call dword [0xaca2b0]
inc dword [ebp - 0x18]
jmp 0x404701
lea ecx, [ebp - 0x270]
call fcn.00414865
mov dword [ebp - 0x20], 0x8451d77f
xor ebx, ebx
inc ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x38], 0xfffd
push ebx
lea ecx, [ebp - 0x1e4]
call fcn.00414793
mov dword [ebp - 0x14], 0
jmp 0x40492f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1e4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x404920
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 6
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setle dl
add edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1e4]
mov dword [eax], edx
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x4049e1
mov dword [ebp - 0x34], 0xffffffff
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1e4]
cmp dword [eax + ecx*4], 0
je 0x4049a3
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
xor ebx, ebx
mov ecx, dword [ebp - 0x1e4]
cmp dword [ecx + eax*4], 1
sete bl
add ebx, dword [ecx + edx*4]
mov dword [ecx], ebx
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setl dl
mov eax, dword [ebp - 0x1e4]
mov dword [eax + esi*4], edx
dec dword [ebp - 0x18]
jns 0x40498a
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0x1e4]
call fcn.00414865
mov dword [ebp - 0x34], 0x413053bf
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x40], 0xfffffff8
mov dword [ebp - 0x3c], 0xebf0a0cd
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x28], 0
jmp 0x404acb
mov dword [ebp - 0x30], 0x25260417
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 0x9facd4a7
mov eax, dword [ebp - 0x30]
add eax, 0x842e
xor edx, edx
cmp eax, 0x9d73
setg dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, dword [ebp - 0x28]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x34]
jle 0x404a79
cmp dword [ebp - 0x40], 0
je 0x404a79
mov eax, ebx
jmp 0x404a7b
xor eax, eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x404a9d
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
xor eax, eax
mov byte [ebp - 0x22], al
cmp byte [ebp - 0x22], al
je 0x404ac8
push eax
push 0x17eb
push eax
push eax
push 0x1791
push 0x2b1
call dword [0xaca400]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 5
jge 0x404a1b
mov dword [ebp - 0x14], 0
jmp 0x404aef
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x650], 0x5a83d87e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x404ade
movdqa xmm0, xmmword [0xabadb0]
movdqu xmmword [ebp - 0x8f0], xmm0
lea ecx, [ebp - 0x8f0]
lea eax, [ebp - 0x8e0]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x2e8]
call fcn.0041483f
mov dword [ebp - 0x28], ebx
push 2
lea ecx, [ebp - 0x450]
call fcn.00414793
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x404b56