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

Disassembly:
mov eax, 0x4cb6ad
call fcn.004cb2b8
sub esp, 0xebc
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x64], dl
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x48], 0
or esi, 0xffffffff
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x48], 0x85a7b051
xor ebx, ebx
inc ebx
push ebx
lea ecx, [ebp - 0x49c]
call fcn.00416294
mov dword [ebp - 0x40], 0x678d
cmp dword [ebp - 0x40], 0x67ab
jle 0x401a4e
xor esi, esi
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x3c], 0x32ab
mov eax, esi
mov ecx, ebx
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xcf4]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041605e
push eax
call fcn.004b5e77
pop ecx
push 0
push 1
lea ecx, [ebp - 0xcf4]
call fcn.00416734
add ebx, edi
dec dword [ebp - 0x3c]
jne 0x4019fc
inc edi
cmp edi, 0x46d2
jl 0x4019f3
inc esi
cmp esi, 0x777b
jl 0x4019f1
xor ebx, ebx
inc ebx
or esi, 0xffffffff
mov dword [ebp - 0x48], esi
and dword [ebp - 4], 0
cmp dword [ebp - 0x40], 0x673b
jge 0x401a69
push 0xabf470
call fcn.004b5e77
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x401a95
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x48], 6
push 3
pop edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x24], 0x4a219909
mov dword [ebp - 0x48], 0xfffffffb
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jge 0x401adc
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x49c]
mov dword [eax + ecx*4], 0x56123d4a
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x401ac2
xor eax, eax
inc dword [ebp - 0x3c]
mov dword [ebp - 0x24], 0xfffffff8
push 0xfffffffffffffff7
pop ecx
jmp 0x401b13
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x401b02
push eax
push eax
push eax
push eax
push eax
call dword [0xae233c]
push 0xfffffffffffffff7
pop ecx
mov eax, dword [ebp - 0x49c]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x24]
push 0
pop eax
cmp dword [ebp - 0x24], ecx
jl 0x401aeb
lea ecx, [ebp - 0x49c]
call fcn.00416366
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x4c], 0xffffffe6
cmp dword [ebp - 0x4c], 0xfffffff2
jl 0x401c4d
push 5
pop edx
mov dword [ebp - 0x44], 0xfffffffc
mov dword [ebp - 0x40], 0xe91b76e1
mov dword [ebp - 0x44], 0x18
cmp dword [ebp - 0x44], 0xfffffffa
jg 0x401c40
mov dword [ebp - 0x1c], 0x13af72b5
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x24], 0
jmp 0x401b8f
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x948], 0xfc72fa5d
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x401b7e
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], 0xc023f41d
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x4c]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setge dl
push 2
pop eax
cmp eax, edx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
sub eax, 0x5d36
imul ecx, eax
sub ecx, dword [ebp - 0x4c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0x22c
mov eax, dword [ebp - 0x93c]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x4c]
jne 0x401c07
cmp dword [ebp - 0x28], 0
je 0x401c07
mov eax, ebx
jmp 0x401c09
xor eax, eax
mov ecx, dword [ebp - 0x4c]
add ecx, eax
mov eax, dword [ebp - 0x940]
imul ecx, eax
cmp dword [ebp - 0x4c], ecx
je 0x401c26
cmp dword [ebp - 0x40], 0
je 0x401c26
mov ecx, ebx
jmp 0x401c28
xor ecx, ecx
mov eax, dword [ebp - 0x44]
add eax, ecx
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xfffffffa
push 5
pop edx
jle 0x401b64
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xfffffff2
jge 0x401b45
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, ebx
setg cl
sub ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x4c]
xor eax, eax
cmp ecx, 0x59a7
setl al
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x24], 0x8a61928c
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x24], 0xfffffff1
jmp 0x401ca8
mov dword [ebp - 0x3c], 0x4822
dec dword [ebp - 0x3c]
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe8
jle 0x401c9b
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x401cc8
push eax
push 0x13fb
push eax
push 0x1759
call dword [0xae2074]
mov dword [ebp - 0x48], 0x85a7b051
push ebx
lea ecx, [ebp - 0x4c0]
call fcn.00416294
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp - 0x24], 0xb35f1971
mov dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 0x1a
jge 0x401ea0
push ebx
lea ecx, [ebp - 0x4a8]
call fcn.00416294
mov dword [ebp - 0x30], 0x1921
cmp dword [ebp - 0x30], 0x1b21
jle 0x401dae
push 0x5f5
call dword [0xae2324]
xor ebx, ebx
mov dword [ebp - 0x40], ebx
xor edi, edi
mov dword [ebp - 0x3c], edi
xor esi, esi
mov dword [ebp - 0x34], ebx
mov ecx, edi
mov edi, ebx
shl edi, cl
xor ebx, ebx
lea eax, [ebx + esi]
xor eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xb2c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041605e
push eax
call fcn.004b5e77
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb2c]
call fcn.00416734
inc ebx
cmp ebx, 0x46c7
jl 0x401d43
inc esi
cmp esi, 0x4766
jl 0x401d41
mov edi, dword [ebp - 0x3c]
inc edi
mov dword [ebp - 0x3c], edi
cmp edi, 0x4aef
mov ebx, dword [ebp - 0x40]
jl 0x401d36
inc ebx
mov dword [ebp - 0x40], ebx
cmp ebx, 0x3252
jl 0x401d31
xor ebx, ebx
inc ebx
or esi, 0xffffffff
push 3
pop edi
mov dword [ebp - 4], 2
cmp dword [ebp - 0x30], 0x16a6
jge 0x401dc9
push 0xabf4c0
call fcn.004b5e77
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x401df8
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x48], 0xfffffffb
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], ebx
jge 0x401e23
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4a8]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], ebx
jl 0x401e0d
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 4
jge 0x401e45
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x9bc], 0x4d1454bc
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 4
jl 0x401e2c
xor eax, eax
mov dword [ebp - 0x4c], eax
jmp 0x401e5b
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x9ac], 0
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 4
jl 0x401e4a
mov dword [ebp - 0x9ac], ebx
mov eax, dword [ebp - 0x4a8]
xor ecx, ecx
cmp dword [eax], ebx
setne cl
add ecx, dword [eax]
sub ecx, dword [ebp - 0x1c]
sub ecx, 0xc712
sub ecx, dword [ebp - 0x9b4]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x4a8]
call fcn.00416366
inc dword [ebp - 0x1c]
jmp 0x401cf7
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x401f13
mov dword [ebp - 0x28], eax
jmp 0x401f0a
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x401ecc
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x5b0], 0xffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x401eb4
xor eax, eax
dec dword [ebp - 0x5b0]
mov dword [ebp - 0x24], eax
jmp 0x401f01
mov dword [ebp - 0x44], 0xc7a88ff7
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], edi
jge 0x401efe
mov eax, dword [ebp - 0x44]
mov dword [ebp + eax*4 - 0x5b0], 0
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], edi
jl 0x401ee6
xor eax, eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffff8
jl 0x401ed7
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff9
jle 0x401eac
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x16
jne 0x401ea7
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x48], 6
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x24], 0x4a219909
mov dword [ebp - 0x48], 0xfffffffb
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jge 0x401f60
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c0]
mov dword [eax + ecx*4], 0x56123d4a
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x401f46
xor eax, eax
inc dword [ebp - 0x3c]
mov dword [ebp - 0x24], 0xfffffff8
push 0xfffffffffffffff7
pop esi
jmp 0x401f94
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x401f83
push eax
push eax
push eax
push eax
push eax
call dword [0xae233c]
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x24]
push 0
pop eax
cmp dword [ebp - 0x24], esi
jl 0x401f6f
lea ecx, [ebp - 0x4c0]
call fcn.00416366
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x868], xmm0
lea ecx, [ebp - 0x868]
lea eax, [ebp - 0x858]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x670]
call fcn.00416340
mov dword [ebp - 0x44], 0xd4081c29
mov dword [ebp - 0x3c], 0xf63069be
mov dword [ebp - 0x44], edi
cmp dword [ebp - 0x44], 0
jl 0x40203c
mov edi, dword [ebp - 0x670]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x54], 0
cmp dword [edi + 8], 0
je 0x402014
mov eax, dword [ebp - 0x34]
neg eax
sbb eax, eax
neg eax
imul eax, eax, 0x504d
cmp eax, dword [ebp - 0x3c]
jge 0x402014
cmp dword [edi + 8], 0
je 0x402014
mov esi, ebx
jmp 0x402016
xor esi, esi
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp eax, esi
setge dl
mov eax, dword [ebp - 0x670]
add edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x3c]
add eax, edx
mov dword [ebp - 0x54], eax
dec dword [ebp - 0x44]
push 0xfffffffffffffff7
pop esi
jns 0x401fe6
lea ecx, [ebp - 0x670]
call fcn.00416366
mov dword [ebp - 0x44], 0x35c7
mov dword [ebp - 0x54], 0xabf548
cmp dword [ebp - 0x44], 0x3923
jle 0x4020d2
xor ebx, ebx
mov dword [ebp - 0x40], ebx
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x3c], 0x4c0
xor esi, esi
mov ebx, dword [ebp - 0x30]
xor edi, edi
mov eax, ebx
xor eax, edi
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xe5c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041605e
push eax
call fcn.004b5e77
pop ecx
push 0
push 1
lea ecx, [ebp - 0xe5c]
call fcn.00416734
inc edi
cmp edi, 0x4b23
jl 0x402076
inc esi
cmp esi, 0x2193
jl 0x402074
mov ebx, dword [ebp - 0x40]
add dword [ebp - 0x30], ebx
dec dword [ebp - 0x3c]
jne 0x40206f
inc ebx
mov dword [ebp - 0x40], ebx
cmp ebx, 0x6882
jl 0x402063
mov dword [ebp - 0x14], 0x97f6af11
mov dword [ebp - 0x40], 0x356
cmp dword [ebp - 0x40], 0x4d5
jle 0x40214b
xor edi, edi
mov dword [ebp - 0x3c], edi
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x34], edi
mov ecx, esi
shl edi, cl
mov eax, edi
and eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xb5c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041605e
push eax
call fcn.004b5e77
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb5c]
call fcn.00416734
inc ebx
cmp ebx, 0x7329
jl 0x4020f9
inc esi
cmp esi, 0x593b
mov edi, dword [ebp - 0x3c]
jl 0x4020f0
inc edi
mov dword [ebp - 0x3c], edi
cmp edi, 0x6c78
jl 0x4020ee
mov dword [ebp - 0x24], 0
push 2
pop esi
jmp 0x402168
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x99c], 0
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x402157
mov dword [ebp - 4], 4
cmp dword [ebp - 0x40], 0x155
jge 0x402188
push 0xabf5a0
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
push 3
pop edi
jmp 0x4021b5
xor eax, eax
xor ebx, ebx
inc ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xa
je 0x4022c5
push esi
lea ecx, [ebp - 0x4d8]
call fcn.00416294
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x4021f7
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4d8]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x4021dd
xor eax, eax
mov byte [ebp - 0x15], al
mov dword [ebp - 0x3c], 0x2e27
cmp dword [ebp - 0x3c], 0x301c
jle 0x402234
mov esi, eax
mov edi, eax
mov ebx, 0x37bf
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
add edi, esi
dec ebx
jne 0x402213
inc esi
cmp esi, 0x4a2c
push ebx
pop eax
jl 0x40220c
xor eax, eax
cmp byte [ebp - 0x15], 0
je 0x402242
push eax
push eax
call dword [0xae24c0]
mov dword [ebp - 4], 6
cmp dword [ebp - 0x3c], 0x2bbc
jge 0x402261
mov edx, 0xabf628
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
push 3
xor eax, eax
xor ebx, ebx
pop edi
inc ebx
mov esi, dword [ebp - 0x4d8]
mov dword [esi + 4], eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x40228d
push eax
push 0xf32
call dword [0xae2500]
xor eax, eax
inc dword [esi + 4]
cmp dword [esi + 4], ebx
jle 0x402276
lea ecx, [ebp - 0x4d8]
call fcn.00416366
inc dword [ebp - 0x14]
push 2
pop esi
jmp 0x4021bd
mov dword [ebp - 4], 8
cmp dword [ebp - 0x44], 0x3371
jge 0x4022de
push dword [ebp - 0x54]
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x40230f
mov dword [ebp - 0x48], 0xfffffffc
mov dword [ebp - 0x48], 0x2b1cecb4
mov dword [ebp - 0x48], 0x49febb67
mov dword [ebp - 0x48], 0xfffffff9
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x3c], 0xce96f8f
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x40235c
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xdcc], 0x6b9dd952
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x402344
xor eax, eax
inc dword [ebp - 0x3c]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x84], 0xffffffff
mov dword [ebp - 0x80], 0xffffffff
mov dword [ebp - 0x7c], 0xffffffff
mov dword [ebp - 0x78], 0xffffffff
mov dword [ebp - 0x48], 0x85a7b051
push 4
lea ecx, [ebp - 0x240]
call fcn.00416294
mov dword [ebp - 0x28], 0x4a18885c
mov dword [ebp - 0x3c], 0x99ea7eb8
mov dword [ebp - 0x24], 0
jmp 0x4023bf
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x240]
mov dword [eax + ecx*4], 0xb3198a8f
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x4023ac
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], 0
jl 0x4025a9
mov dword [ebp - 0x34], 6
push ebx
lea ecx, [ebp - 0x3b4]
call fcn.00416294
mov dword [ebp - 0x54], 4
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x40240e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x158], 0xfe5f36f6
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x4023f6
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jge 0x40242d
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3b4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x402416
xor eax, eax
mov dword [ebp - 0x154], edi
cmp dword [ebp - 0x154], eax
jl 0x402593
mov dword [ebp - 0x44], 0x1bca9d69
mov dword [ebp - 0x44], edi
cmp dword [ebp - 0x44], eax
jl 0x402561
mov dword [ebp - 0x54], 0x6e348cc3
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x4024f7
mov dword [ebp - 0x3c], 0x2b8
cmp dword [ebp - 0x3c], 0x5fe
jle 0x40249f
mov esi, eax
mov edi, eax
mov ebx, 0x7e8b
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
add edi, esi
dec ebx
jne 0x40247f
inc esi
cmp esi, 0x673f
push ebx
pop eax
jl 0x402478
inc ebx
push 0x1444
push 0x208a
call dword [0xae2510]
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x3c], 0x27c
jge 0x4024ce
mov edx, 0xabf6bc
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x4024f5
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x402503
cmp dword [ebp - 0x34], eax
mov esi, eax
je 0x402505
mov esi, ebx
mov ecx, dword [ebp - 0x44]
xor edx, edx
mov eax, dword [ebp - 0x240]
cmp esi, dword [eax + ecx*4]
setne dl
mov ecx, dword [ebp - 0x54]
sub ecx, edx
xor edx, edx
mov eax, dword [ebp - 0x3b4]
cmp ecx, dword [eax]
setne dl
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp dword [ecx + esi*4], eax
setne dl
sub edx, 0x5cee3c04
mov eax, dword [ebp - 0x240]
mov dword [eax + edi*4], edx
dec dword [ebp - 0x44]
xor eax, eax
jmp 0x402449
mov eax, dword [ebp - 0x3b4]
mov dword [eax], 0x37bd
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, 0x37bd
setge cl
add ecx, 0xffff
mov dword [ebp - 0x54], ecx
dec dword [ebp - 0x154]
xor eax, eax
push 3
pop edi
jmp 0x402433
lea ecx, [ebp - 0x3b4]
call fcn.00416366
dec dword [ebp - 0x28]
push 2
pop esi
jmp 0x4023c8
lea ecx, [ebp - 0x240]
call fcn.00416366
push ebx
lea ecx, [ebp - 0x550]
call fcn.00416294
mov dword [ebp - 0x40], 0x1630
cmp dword [ebp - 0x40], 0x1883
jle 0x402619
push 0x879
xor eax, eax
push eax
push eax
call dword [0xae2040]
xor edi, edi
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x3c], 0x7d1
mov eax, ebx
or eax, edi
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
add ebx, esi
dec dword [ebp - 0x3c]
jne 0x4025ec
inc esi
cmp esi, 0x5cde
jl 0x4025e3
inc edi
cmp edi, 0x5d1b
jl 0x4025e1
xor ebx, ebx
inc ebx
mov dword [ebp - 0x4c], 0x951e
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x40], 0x1459
jge 0x40263f
mov edx, 0xabf718
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x402666
push 4
lea ecx, [ebp - 0x3cc]
call fcn.00416294
mov dword [ebp - 0x20], 0xfffffff6
mov dword [ebp - 0x1c], 0x48110cbb
mov dword [ebp - 0x34], 0x5d3e8ea4
mov dword [ebp - 0x24], 0
jmp 0x4026a4
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3cc]
mov dword [eax + ecx*4], 0xe5c8a52b
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x402691
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x4c]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setge cl
mov esi, dword [ebp - 0x3cc]
add esi, 4
mov dword [esi], ecx
xor edx, edx
cmp ecx, 0x45a8cced
setle dl
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
inc ecx
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0x4c]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, edx
setge cl
imul ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0x9be67e78
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x4c]
je 0x4028af
mov dword [ebp - 0x44], 0x259c
mov dword [ebp - 0x3c], 0x58ee
cmp dword [ebp - 0x3c], 0x5a1c
jle 0x4027a1
xor esi, esi
xor edi, edi
mov eax, edi
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xd24]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041605e
push eax
call fcn.004b5e77
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xd24]
call fcn.00416734
inc edi
cmp edi, 0x5c8a
jl 0x40275f
inc esi
cmp esi, 0x40f9
jl 0x40275d
mov dword [ebp - 0x24], 0
jmp 0x4027bb
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x234], 0xbc12a55b
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x4027aa
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x3c], 0x5774
jge 0x4027db
push 0xabf760
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x402802
push 8
pop edi
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x3cc]
add esi, 4
imul eax, dword [ebp - 0x44], 0x8bc1
xor ecx, ecx
cmp eax, dword [esi]
setg cl
mov eax, dword [ebp - 0x44]
imul eax, ecx
cmp eax, 0xfffffff9
sbb eax, eax
neg eax
cmp edi, eax
sbb edx, edx
inc edx
imul edx, dword [esi]
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, ecx
setne dl
xor eax, eax
cmp edx, 0xffffffff
setne al
cmp ebx, eax
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setne cl
imul ecx, dword [ebp - 0x20]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x234], ecx
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x4028ee
push eax
push eax
push 0x19d3
push eax
push 0x1e84
push eax
push 0x1619
push 0x280
call dword [0xae2338]
jmp 0x4028ee
mov dword [ebp - 0x1c], 0xfffffffe
mov dword [ebp - 0x20], 0xf
jmp 0x4028e8
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
je 0x4028e5
push 0x2436
push 0
push 0x2334
push 0xcf1
push 0xe21
call dword [0xae2090]
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffffa
jge 0x4028bf
mov dword [ebp - 0x1c], 5
jmp 0x402919
mov dword [ebp - 0x20], 0xd251a654
mov eax, dword [ebp - 0x20]
mov dword [esi], eax
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x402916
push ebx
push eax
push eax
call dword [0xae202c]
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffee
jge 0x4028f7
lea ecx, [ebp - 0x3cc]
call fcn.00416366
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x40], 0x31c5
cmp dword [ebp - 0x40], 0x35a5
jle 0x402998
xor eax, eax
push eax
push 0x1991
push eax
call dword [0xae238c]
xor esi, esi
xor edi, edi
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xb8c]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041605e
push eax
call fcn.004b5e77
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xb8c]
call fcn.00416734
inc edi
cmp edi, 0x142e
jl 0x402954
inc esi
cmp esi, 0x4eba
jl 0x402952
mov dword [ebp - 0x34], 0xbff4
mov dword [ebp - 0x48], 0xedac7a8
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x48], 0x2a7b09f5
mov dword [ebp - 0x3c], 0x7a85
cmp dword [ebp - 0x3c], 0x7b13
jle 0x402a18
xor ebx, ebx
xor esi, esi
xor edi, edi
lea eax, [esi + ebx]
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xdfc]
call fcn.0040191d
pop ecx
pop ecx
mov ecx, eax
call fcn.0041605e
push eax
call fcn.004b5e77
pop ecx
push 0
push 1
lea ecx, [ebp - 0xdfc]
call fcn.00416734
inc edi
cmp edi, 0x67d1
jl 0x4029c6
inc esi
cmp esi, 0x36a3
jl 0x4029c4
inc ebx
cmp ebx, 0x30c6
jl 0x4029c2
xor ebx, ebx
inc ebx
mov dword [ebp - 0x48], 0x571c097b
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x3c], 0x77a5
jge 0x402a3a
push 0xabf7f4
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x402a65
push 3
pop edi
push 2
pop esi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x48], 0xfffffff9
mov dword [ebp - 0x48], 0x7a912e75
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x48], 0xae7bf199
mov dword [ebp - 0x3c], 0x64939e63
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x5c], 0x89ced66e
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x54], 0xcb8f1fe3
mov dword [ebp - 0x14], 0x126ed4bc
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x48], 0xfffffff6
push ebx
lea ecx, [ebp - 0x5c8]
call fcn.00416294
push esi
lea ecx, [ebp - 0x298]
call fcn.00416294
mov dword [ebp - 0x20], 0
jmp 0x402ae9
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x5c8]
mov dword [eax + ecx*4], 0x2095d7c1
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x402ad6
mov dword [ebp - 0x20], 0
jmp 0x402b07
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x298]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x402af7
cmp dword [ebp - 0x34], 0
je 0x402b48
mov eax, dword [ebp - 0x298]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x54]
add edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x298]
inc dword [eax]
cmp edx, ecx
jne 0x402b36
mov eax, ebx
jmp 0x402b38
xor eax, eax
cmp eax, ebx
sbb eax, eax
inc eax
sub eax, 0x3095edbf
je 0x402b48
mov eax, ebx
jmp 0x402b4a
xor eax, eax
add eax, 0xfffffff8
je 0x402b52
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp eax, ebx
setle dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x402b7d
mov eax, dword [ebp - 0x298]
cmp dword [eax], 0
je 0x402b7d
mov eax, ebx
jmp 0x402b7f
xor eax, eax
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x5c8]
mov dword [eax], ecx
lea ecx, [ebp - 0x298]
call fcn.00416366
lea ecx, [ebp - 0x5c8]
call fcn.00416366
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x40], 0x3110
jge 0x402bbe
push 0xabf7d4
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x402beb
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x48], 6
mov dword [ebp - 0x4c], 0xbca63185
push esi
lea ecx, [ebp - 0x3fc]
call fcn.00416294
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x84], 6
mov dword [ebp - 0x80], 6
mov dword [ebp - 0x7c], 6
mov dword [ebp - 0x78], 6
push ebx
lea ecx, [ebp - 0x640]
call fcn.00416294
mov dword [ebp - 0x20], 0
jmp 0x402c61
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3fc]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x402c4e
mov dword [ebp - 0x20], 0
jmp 0x402c82
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x640]
mov dword [eax + ecx*4], 0x77904128
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x402c6f
mov dword [ebp - 0x4c], 0x13
jmp 0x402cc6
mov dword [ebp - 0x44], 0x4b4e1265
mov dword [ebp - 0x44], 0
jmp 0x402cba
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
je 0x402cb7
push 0
push 0xf2e
call dword [0xae24c4]
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0x11
jge 0x402ca0
mov eax, dword [ebp - 0x44]
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xfffffff7
jge 0x402c90
mov dword [ebp - 0x4c], 0
cmp dword [ebp - 0x4c], ebx
jg 0x402e6c
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x2d8], 0x3d0bb94d
mov dword [ebp - 0x2d4], 0x3d0bb94d
mov dword [ebp - 0x2d0], 0x3d0bb94d
mov dword [ebp - 0x2cc], 0x3d0bb94d
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3fc]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
test eax, eax
je 0x402ddb
movdqa xmm0, xmmword [0xad02b0]
movdqu xmmword [ebp - 0x8e8], xmm0
lea ecx, [ebp - 0x8e8]
lea eax, [ebp - 0x8d8]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x3e4]
call fcn.00416340
mov eax, dword [ebp - 0x640]
dec dword [eax]
mov dword [ebp - 0x1c], 0
jmp 0x402dce
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0
jne 0x402d96
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x3e4]
mov eax, dword [edx + eax*4]
xor ecx, ecx
cmp eax, dword [edx + 4]
setge cl
imul ecx, dword [edx + esi*4 + 8]
test ecx, ecx
jne 0x402d96
xor esi, esi
jmp 0x402d98
mov esi, ebx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3e4]
mov ecx, dword [eax + ecx*4 + 8]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x2d8], ecx
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
sub ecx, 2
add ecx, esi
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x3e4]
mov dword [eax + edx*4], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jle 0x402d69
lea ecx, [ebp - 0x3e4]
jmp 0x402e58
mov dword [ebp - 0x34], 0xfffffff6
push edi
lea ecx, [ebp - 0x4f0]
call fcn.00416294
mov dword [ebp - 0x54], 0xfffffff8
mov dword [ebp - 0x24], 0
jmp 0x402e11
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4f0]
mov dword [eax + ecx*4], 0x1f205951
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x402dfe
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2d4]
neg ecx
sbb ecx, ecx
inc ecx
neg ecx
mov eax, dword [ebp - 0x4f0]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x54], eax
lea ecx, [ebp - 0x4f0]
call fcn.00416366
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], ebx
jle 0x402cdc
push 2
pop esi
lea ecx, [ebp - 0x640]
call fcn.00416366
lea ecx, [ebp - 0x3fc]
call fcn.00416366
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x3c], 0xe00f
mov dword [ebp - 0x14], 0xfd1f2e96
movdqa xmm0, xmmword [0xad0300]
movdqu xmmword [ebp - 0x888], xmm0
lea ecx, [ebp - 0x888]
lea eax, [ebp - 0x878]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x7e0]
call fcn.00416340
mov dword [ebp - 0x30], 5
mov dword [ebp - 0x3c], 0xffff
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp ebx, eax
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x7e0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x30]
sub ecx, edx
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x3c]
imul eax, edx, 0x7bc7
mov dword [ebp - 0x30], eax
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x402f17
push 0x639
push eax
call dword [0xae22f8]
lea ecx, [ebp - 0x7e0]
call fcn.00416366
mov dword [ebp - 0x28], 0x4a219909
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x4c], 0xffffffe6
jmp 0x40303a
mov dword [ebp - 0x44], 0xfffffffc
mov dword [ebp - 0x40], 0xe91b76e1
mov dword [ebp - 0x44], 0x18
jmp 0x40302d
mov dword [ebp - 0x1c], 0x13af72b5
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x24], 0
jmp 0x402f8c
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x928], 0xfc72fa5d
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x402f7b
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], 0xc023f41d
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x4c]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setge dl
cmp esi, edx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
sub eax, 0x5d36
imul ecx, eax
sub ecx, dword [ebp - 0x4c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0x22c
mov eax, dword [ebp - 0x91c]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x4c]
jne 0x403001
cmp dword [ebp - 0x28], 0
je 0x403001
mov eax, ebx
jmp 0x403003
xor eax, eax
mov ecx, dword [ebp - 0x4c]
add ecx, eax
mov eax, dword [ebp - 0x920]
imul ecx, eax
cmp dword [ebp - 0x4c], ecx
je 0x403020
cmp dword [ebp - 0x40], 0
je 0x403020
mov ecx, ebx
jmp 0x403022
xor ecx, ecx
mov eax, dword [ebp - 0x44]
add eax, ecx
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xfffffffa
jle 0x402f5d
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xfffffff2
jge 0x402f43
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, ebx
setg cl
sub ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x4c]
xor eax, eax
cmp ecx, 0x59a7
setl al
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], 0xfffffffb
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], 0x8a61928c
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x24], 0xfffffff1
jmp 0x403097
mov dword [ebp - 0x3c], 0x4822
dec dword [ebp - 0x3c]
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe8
jle 0x40308a
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x4030b9
push eax
push 0x13fb
push eax
push 0x1759
call dword [0xae2074]
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp - 0x24], 0xb35f1971
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x1a
jge 0x403198
push ebx
lea ecx, [ebp - 0x508]
call fcn.00416294
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x48], 0xfffffffb
mov dword [ebp - 0x4c], 0
jmp 0x40310d
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x508]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], ebx
jl 0x4030fd
mov dword [ebp - 0x4c], 0
jmp 0x40312c
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x9ec], 0x4d1454bc
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 4
jl 0x40311b
mov dword [ebp - 0x4c], 0
jmp 0x40314c
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x9d4], 0
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 4
jl 0x40313b
mov dword [ebp - 0x9d4], ebx
mov eax, dword [ebp - 0x508]
xor ecx, ecx
cmp dword [eax], ebx
setne cl
add ecx, dword [eax]
sub ecx, dword [ebp - 0x20]
sub ecx, 0xc712
sub ecx, dword [ebp - 0x9e4]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x508]
call fcn.00416366
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1a
jl 0x4030d7
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x403209
mov dword [ebp - 0x28], eax
jmp 0x403200
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x4031c2
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x5e0], 0xffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x4031aa
xor eax, eax
dec dword [ebp - 0x5e0]
mov dword [ebp - 0x24], eax
jmp 0x4031f7
mov dword [ebp - 0x44], 0xc7a88ff7
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], edi
jge 0x4031f4
mov eax, dword [ebp - 0x44]
mov dword [ebp + eax*4 - 0x5e0], 0
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], edi
jl 0x4031dc
xor eax, eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffff8
jl 0x4031cd
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff9
jle 0x4031a2
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x16
jne 0x40319d
mov dword [ebp - 0x24], eax
jmp 0x403227
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x550]
mov dword [eax + ecx*4], 0x56123d4a
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x403214
push esi
lea ecx, [ebp - 0x414]
call fcn.00416294
mov dword [ebp - 0x20], 0x9bdba76a
push ebx
lea ecx, [ebp - 0x520]
call fcn.00416294
mov dword [ebp - 0x20], 0
jmp 0x403263
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x414]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x403254
mov dword [ebp - 0x20], 0
jmp 0x403284
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x520]
mov dword [eax + ecx*4], 0xa66fa4bc
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x403271
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0
jl 0x40332d
mov dword [ebp - 0x3c], 0xfffffff9
mov dword [ebp - 0x40], 0xee507704
mov dword [ebp - 0x34], 0x245c2f1f
mov eax, dword [ebp - 0x20]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xc105a83e
setl cl
mov eax, dword [ebp - 0x20]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
xor edx, edx
cmp eax, 0x6d6092f6
setge dl
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, dword [ebp - 0x40]
jge 0x4032f9
lea ecx, [ebp - 0x520]
call fcn.00416366
lea ecx, [ebp - 0x414]
call fcn.00416366
inc dword [ebp - 0x30]
mov dword [ebp - 0x3c], 0x5208
cmp dword [ebp - 0x3c], 0x5438
jle 0x4033c6