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

Disassembly:
mov eax, 0x4bb6fd
call fcn.004bb310
push ecx
mov eax, 0x1280
call fcn.004b7cb0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x8c], dl
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x54], 8
xor ebx, ebx
inc ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0xfffffffe
mov dword [ebp - 0x44], 0xd9b95031
mov dword [ebp - 0x44], 0xa35ca420
mov dword [ebp - 0x44], 0x7e2f9d44
or esi, 0xffffffff
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x50], 0xfaab39e
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x401ab8
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xc8c], 0xffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x401a9f
xor eax, eax
mov dword [ebp - 0x54], 0xffffffe8
cmp dword [ebp - 0x54], 0xa
jge 0x401b52
push 4
pop edi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x401aef
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1290], 0xc9e53e58
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x401ad7
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x401b3f
mov dword [ebp - 0x44], 0xfffffffd
mov dword [ebp - 0x44], 0xfd5d7051
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x401b24
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x8dc], 2
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x401b0b
xor eax, eax
dec dword [ebp - 0x8d4]
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x401b3c
push eax
call dword [0xaa332c]
xor eax, eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jle 0x401af4
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xa
jl 0x401acc
dec dword [ebp - 0x50]
mov dword [ebp - 0x54], 8
push 3
lea ecx, [ebp - 0x348]
call fcn.0041a182
mov dword [ebp - 0x14], 0x94643cdf
movdqa xmm0, xmmword [0xa8f630]
movdqu xmmword [ebp - 0xb24], xmm0
lea ecx, [ebp - 0xb24]
lea eax, [ebp - 0xb14]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x8f4]
call fcn.0041a22e
mov dword [ebp - 0x5c], 0x8fb0b44c
mov dword [ebp - 0x3c], 0xfffffff8
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x48], 0x8677a3b2
mov dword [ebp - 0x20], 0
jmp 0x401bce
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x348]
mov dword [eax + ecx*4], 0x10c93b4e
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x401bbb
mov dword [ebp - 0x1c], 0x6b25
cmp dword [ebp - 0x1c], 0x6de1
jle 0x401c4b
xor ebx, ebx
mov dword [ebp - 0x28], ebx
xor edi, edi
mov dword [ebp - 0x30], edi
xor esi, esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x58], ebx
mov ecx, edi
sar ebx, cl
mov edi, esi
mov esi, 0x5b5f
mov eax, ebx
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9fdf8
call fcn.00419f57
dec edi
dec esi
jne 0x401c01
mov esi, dword [ebp - 0x50]
inc esi
mov dword [ebp - 0x50], esi
cmp esi, 0x3ba0
jl 0x401bfa
mov edi, dword [ebp - 0x30]
inc edi
mov dword [ebp - 0x30], edi
cmp edi, 0x7b97
mov ebx, dword [ebp - 0x28]
jl 0x401bee
inc ebx
mov dword [ebp - 0x28], ebx
cmp ebx, 0x4017
jl 0x401be9
xor ebx, ebx
inc ebx
or esi, 0xffffffff
mov dword [ebp - 0x20], 0
jmp 0x401c61
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1bc], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x401c54
and dword [ebp - 4], 0
cmp dword [ebp - 0x1c], 0x6b15
jge 0x401c83
mov edx, 0xa7cee0
mov ecx, 0xa9fdf8
call fcn.0041c484
mov dword [ebp - 4], esi
jmp 0x401ca9
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x401ccd
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xb58], 0x5cefd06b
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x401cb4
xor eax, eax
mov dword [ebp - 0x54], 0xb5e
cmp dword [ebp - 0x54], 0xe50
jle 0x401d30
mov edi, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], 0x4477
mov esi, eax
mov ebx, eax
mov eax, edi
and eax, ebx
and eax, esi
cdq
push edx
push eax
mov ecx, 0xa9fdf8
call fcn.00419f57
inc ebx
cmp ebx, 0x360f
jl 0x401cf0
inc esi
cmp esi, 0x1f59
push 0
pop eax
jl 0x401cee
dec edi
dec dword [ebp - 0x50]
jne 0x401cec
mov edi, dword [ebp - 0x30]
inc edi
mov dword [ebp - 0x30], edi
cmp edi, 0x762b
jl 0x401ce2
xor ebx, ebx
inc ebx
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 2
jg 0x401f71
mov edi, dword [ebp - 0x8f4]
mov dword [ebp - 0x50], 0xfffffffe
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x2c], 0xe10a
mov dword [ebp - 0x58], 0xeac3
mov dword [ebp - 0x38], 0x93e3674d
mov dword [ebp - 0x1c], 0
jmp 0x401d84
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x148], 0x8a600164
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x401d73
mov eax, dword [ebp - 0x14]
cmp dword [edi + 8], 0
jne 0x401ed3
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x348]
mov eax, dword [ecx]
xor edx, edx
cmp eax, dword [ecx + esi*4]
setne dl
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x148]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x148], eax
add eax, 0x3cb8
jne 0x401ed3
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x28], 0x87a760f2
push ebx
lea ecx, [ebp - 0x428]
call fcn.0041a182
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x401e31
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x428]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x401e17
xor eax, eax
dec dword [ebp - 0x30]
je 0x401e3d
cmp dword [ebp - 0x30], eax
mov esi, ebx
jne 0x401e3f
mov esi, eax
cmp dword [ebp - 0x2c], eax
je 0x401e7f
cmp dword [ebp - 0x1b8], eax
jne 0x401e57
cmp dword [edi + 8], 0xa7b986af
mov ecx, eax
je 0x401e59
mov ecx, ebx
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov eax, dword [ebp - 0x428]
cmp dword [eax], 0x1f42
setne dl
mov eax, dword [ebp - 0x148]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
cmp esi, ecx
setge dl
mov ecx, dword [ebp - 0x428]
mov eax, dword [ecx]
imul eax, edx
mov dword [ecx], eax
xor eax, eax
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], al
je 0x401ec3
push eax
push eax
call dword [0xaa3364]
lea ecx, [ebp - 0x428]
call fcn.0041a254
jmp 0x401f5e
mov dword [ebp - 0x30], 0xb4ff5102
mov dword [ebp - 0x50], 0x1021f5eb
mov dword [ebp - 0x50], 0xffffffff
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x50], ebx
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setg dl
mov ecx, dword [ebp - 0x2c]
sub ecx, edx
mov eax, dword [ebp - 0xb58]
xor edx, edx
cmp ecx, eax
setge dl
mov ecx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0x3c]
imul ecx, edx
mov eax, dword [ebp - 0x348]
add ecx, dword [eax + esi*4]
xor edx, edx
test ecx, ecx
setle dl
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x50]
neg ecx
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
xor edx, edx
mov eax, dword [ebp - 0x348]
cmp ecx, dword [eax + 4]
setne dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x48], 0
jne 0x401f71
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x401d47
mov dword [ebp - 4], 2
cmp dword [ebp - 0x54], 0xae0
jge 0x401f90
mov edx, 0xa7cf74
mov ecx, 0xa9fdf8
call fcn.0041c484
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x401fbb
lea ecx, [ebp - 0x8f4]
call fcn.0041a254
lea ecx, [ebp - 0x348]
call fcn.0041a254
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x58], ebx
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 5
jg 0x402009
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x50], eax
jne 0x401ff5
cmp dword [ebp - 0x58], eax
je 0x401ff7
mov eax, ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 5
push 0
pop eax
jle 0x401fe5
mov dword [ebp - 0x44], 0xfffffffe
mov dword [ebp - 0x1c], 0x1928c176
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x40202b
push eax
push eax
push eax
call dword [0xaa33ac]
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x402045
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x402042
push eax
call dword [0xaa3338]
xor eax, eax
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffee
jge 0x402030
mov dword [ebp - 0x44], 0xd9b95031
mov dword [ebp - 0x44], 0x48d327cb
mov dword [ebp - 0x44], 0xdb505206
mov dword [ebp - 0x44], 0x3c8fc558
push ebx
lea ecx, [ebp - 0x90c]
call fcn.0041a182
mov dword [ebp - 0x54], 2
mov dword [ebp - 0x1c], 0
jmp 0x402096
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x90c]
mov dword [eax + ecx*4], 0x214c405b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x402083
inc dword [ebp - 0x54]
mov dword [ebp - 0x54], 7
jmp 0x4020dd
mov dword [ebp - 0x50], 0xfffffffa
mov byte [ebp - 0x3d], 0
cmp byte [ebp - 0x3d], 0
je 0x4020d7
push 0xd12
push 0x19d0
push 0x1832
push 0x742
push 0x173b
call dword [0xaa3090]
inc dword [ebp - 0x50]
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0x1b
jge 0x4020a7
lea ecx, [ebp - 0x90c]
call fcn.0041a254
mov dword [ebp - 0x44], 0xa35ca420
mov dword [ebp - 0x44], 0x7e2f9d44
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x50], 0x7bf
cmp dword [ebp - 0x50], 0xb89
jle 0x402158
xor esi, esi
xor edi, edi
mov eax, edi
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xd10]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xd10]
call fcn.0041a653
inc edi
cmp edi, 0x3b84
jl 0x402113
inc esi
cmp esi, 0x1195
jl 0x402111
or edi, 0xffffffff
mov dword [ebp - 4], 4
cmp dword [ebp - 0x50], 0x6d3
jge 0x402173
push 0xa7cfd0
call fcn.004a5ec7
pop ecx
mov dword [ebp - 4], edi
jmp 0x40219b
mov esi, 0xffff
push 2
lea ecx, [ebp - 0x924]
call fcn.0041a182
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x38], 0x9a67b9c5
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x4021df
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x924]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4021c8
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4021f5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x130], 0xa969
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4021e4
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x130]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x130]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x924]
call fcn.0041a254
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x50], 0xfaab39e
mov dword [ebp - 0x1c], 0
jmp 0x40224d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x10e8], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x402240
mov dword [ebp - 0x54], 0xeb06
push 3
lea ecx, [ebp - 0x584]
call fcn.0041a182
mov dword [ebp - 0x24], 0xedbda7fe
push ebx
lea ecx, [ebp - 0x3f8]
call fcn.0041a182
mov dword [ebp - 0x58], 0xff5452fa
mov dword [ebp - 0x14], 0
jmp 0x40229d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x584]
mov dword [eax + ecx*4], 0x4e1265ab
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x40228a
mov dword [ebp - 0x14], 0
jmp 0x4022bb
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3f8]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4022ac
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x584]
mov dword [esi + 8], eax
test eax, eax
jne 0x40231b
mov eax, dword [ebp - 0x3f8]
mov dword [eax], 0xfffffffa
mov eax, dword [ebp - 0x54]
neg eax
jne 0x4022f2
mov eax, dword [ebp - 0x3f8]
cmp dword [eax], 0
jne 0x4022f2
xor edx, edx
jmp 0x4022f4
mov edx, ebx
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
sete cl
xor eax, eax
test ecx, ecx
setg al
neg eax
jne 0x40230c
mov eax, dword [ebp - 0x54]
mov eax, dword [esi + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x24], 0x11
cmp dword [ebp - 0x24], 0xffffffeb
jg 0x40234f
xor eax, eax
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x402346
push eax
push eax
push eax
push eax
push eax
call dword [0xaa3344]
xor eax, eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffeb
jle 0x402330
lea ecx, [ebp - 0x3f8]
call fcn.0041a254
lea ecx, [ebp - 0x584]
call fcn.0041a254
mov dword [ebp - 0x54], 0xffffffe8
cmp dword [ebp - 0x54], 0xa
jge 0x402400
xor eax, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x40239d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1260], 0xc9e53e58
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x402384
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x4023ed
mov dword [ebp - 0x44], 0xfffffffd
mov dword [ebp - 0x44], 0xfd5d7051
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x4023d2
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x93c], 2
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x4023b9
xor eax, eax
dec dword [ebp - 0x934]
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x4023ea
push eax
call dword [0xaa332c]
xor eax, eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jle 0x4023a2
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xa
jl 0x402378
dec dword [ebp - 0x50]
mov dword [ebp - 0x3c], 0x47a5
cmp dword [ebp - 0x3c], 0x483f
jle 0x4024a0
xor ebx, ebx
mov dword [ebp - 0x30], ebx
xor edi, edi
mov dword [ebp - 0x34], edi
xor esi, esi
mov dword [ebp - 0x50], esi
mov eax, ebx
cdq
idiv edi
mov dword [ebp - 0x58], edx
mov ebx, esi
mov edi, 0x7c41
mov esi, dword [ebp - 0x58]
mov eax, esi
xor eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0x11a8]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push 1
lea ecx, [ebp - 0x11a8]
call fcn.0041a653
dec ebx
dec edi
jne 0x402438
mov esi, dword [ebp - 0x50]
inc esi
mov dword [ebp - 0x50], esi
cmp esi, 0x1f1d
jl 0x40242e
mov edi, dword [ebp - 0x34]
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0x3302
mov ebx, dword [ebp - 0x30]
jl 0x402421
inc ebx
mov dword [ebp - 0x30], ebx
cmp ebx, 0x1a6f
jl 0x40241c
xor ebx, ebx
inc ebx
or edi, 0xffffffff
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], 6
cmp dword [ebp - 0x3c], 0x4541
jge 0x4024be
push 0xa7d04c
call fcn.004a5ec7
pop ecx
mov dword [ebp - 4], edi
jmp 0x4024e6
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x40250f
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1c8], 0xa8e
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x4024f7
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x402575
mov dword [ebp - 0x24], 0xf951fe77
mov dword [ebp - 0x24], eax
jmp 0x402547
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x402544
push eax
push 0x110
push 0xa60
push 0x326
call dword [0xaa30b4]
xor eax, eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], eax
jle 0x402523
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x402570
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x40256b
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0xaa334c]
xor eax, eax
dec dword [ebp - 0x24]
jns 0x402554
dec dword [ebp - 0x14]
jns 0x402517
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jg 0x402700
mov dword [ebp - 0x690], 0x597a61ee
mov dword [ebp - 0x68c], 0x597a61ee
mov dword [ebp - 0x688], 0x597a61ee
mov dword [ebp - 0x684], 0x597a61ee
mov dword [ebp - 0x28], 0xb263d188
mov dword [ebp - 0x690], 0x836b16b
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 3
jg 0x4026f8
mov dword [ebp - 0x3c], 0x3e76e5b1
mov dword [ebp - 0x58], 3
mov dword [ebp - 0x3c], 3
cmp dword [ebp - 0x3c], eax
jl 0x402630
mov dword [ebp - 0x50], 0xf7d26684
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1c8]
xor edx, edx
test eax, eax
setne dl
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
xor eax, eax
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], al
je 0x402629
push eax
push eax
push eax
push eax
call dword [0xaa3384]
dec dword [ebp - 0x3c]
jns 0x4025e1
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], eax
jg 0x4026f0
mov dword [ebp - 0x50], 0x5a5d
cmp dword [ebp - 0x50], 0x5b4d
jle 0x40268b
mov ebx, eax
mov esi, eax
mov edi, eax
mov eax, esi
cdq
idiv edi
mov eax, ebx
mov ecx, edx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9fdf8
call fcn.00419f57
inc edi
cmp edi, 0x4ae6
jl 0x402652
inc esi
cmp esi, 0x33b6
push 0
pop eax
jl 0x402650
inc ebx
cmp ebx, 0x6f7
jl 0x40264e
xor ebx, ebx
inc ebx
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x40269c
push eax
push eax
call dword [0xaa3034]
mov dword [ebp - 4], 8
cmp dword [ebp - 0x50], 0x5a13
jge 0x4026bb
mov edx, 0xa7d0a0
mov ecx, 0xa9fdf8
call fcn.0041c484
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x4026e6
inc dword [ebp - 0x2c]
xor eax, eax
jmp 0x402633
inc dword [ebp - 0x28]
jmp 0x4025bd
inc dword [ebp - 0x14]
jmp 0x402578
mov dword [ebp - 0x64], 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x402723
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xc8], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x40270f
xor eax, eax
mov dword [ebp - 0xc8], 0xfffffffd
jmp 0x402745
cmp byte [ebp - 0x3d], 0
je 0x40273f
push eax
push eax
call dword [0xaa34a8]
xor eax, eax
dec dword [ebp - 0xc8]
cmp dword [ebp - 0xc8], 0xffffffe3
mov byte [ebp - 0x3d], al
jl 0x40272f
cmp byte [ebp - 0x3d], 0
je 0x402760
push eax
call dword [0xaa33a4]
xor eax, eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 5
jg 0x402793
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x50], eax
jne 0x40277f
cmp dword [ebp - 0x58], eax
je 0x402781
mov eax, ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 5
push 0
pop eax
jle 0x40276f
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0xfffffffe
mov dword [ebp - 0x3c], 0x701c
cmp dword [ebp - 0x3c], 0x71f8
jle 0x402836
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0xaa331c]
xor ebx, ebx
mov dword [ebp - 0x30], ebx
xor edi, edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x50], 0x53b5
xor esi, esi
mov eax, ebx
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xd40]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd40]
call fcn.0041a653
inc esi
cmp esi, 0x55d2
jl 0x4027d4
mov edi, dword [ebp - 0x34]
add ebx, edi
dec dword [ebp - 0x50]
jne 0x4027d2
dec edi
mov dword [ebp - 0x34], edi
cmp edi, 0xffffc754
mov ebx, dword [ebp - 0x30]
jg 0x4027c8
inc ebx
mov dword [ebp - 0x30], ebx
cmp ebx, 0x57a1
jl 0x4027c3
xor ebx, ebx
inc ebx
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x3c], 0x6cf1
jge 0x402851
push 0xa7d0e8
call fcn.004a5ec7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x402878
xor eax, eax
mov dword [ebp - 0x30], 0xf8e
cmp dword [ebp - 0x30], 0xfc1
jle 0x402929
push 0x6ca
push eax
push 0x176
push 0x22ff
push 0x12f5
push eax
push 0x17d3
push 0x785
push 0x24fb
call dword [0xaa349c]
xor ebx, ebx
mov dword [ebp - 0x34], ebx
xor esi, esi
mov dword [ebp - 0x50], esi
xor edi, edi
mov eax, ebx
cdq
idiv esi
mov ebx, edx
mov eax, ebx
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xc68]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc68]
call fcn.0041a653
inc edi
cmp edi, 0x48d9
jl 0x4028cc
mov esi, dword [ebp - 0x50]
inc esi
mov dword [ebp - 0x50], esi
cmp esi, 0x1f3c
mov ebx, dword [ebp - 0x34]
jl 0x4028c3
inc ebx
mov dword [ebp - 0x34], ebx
cmp ebx, 0x37cf
jl 0x4028be
xor ebx, ebx
inc ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x30], 0xc92
jge 0x402947
push 0xa7d160
call fcn.004a5ec7
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x402972
push 4
pop edi
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x58], 2
mov dword [ebp - 0x44], 0x698ba832
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0xfffffffa
jge 0x402b2c
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x4029bc
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c0], 0xbf2d3f50
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4029a4
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x4029d8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe0], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4029c4
xor eax, eax
cmp dword [ebp - 0x64], eax
jne 0x4029ea
mov eax, dword [ebp - 0x6bc]
add eax, 0x54bc
je 0x4029ec
mov eax, ebx
imul eax, eax, 0x6ce4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x20]
test eax, eax
jne 0x402a0b
cmp dword [ebp - 0x64], eax
je 0x402a0d
mov eax, ebx
mov dword [ebp - 0x6bc], eax
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x20]
imul edx, eax
mov eax, dword [ebp - 0xe0]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x24], edi
jmp 0x402b12
mov dword [ebp - 0x3c], 0x44262821
push ebx
lea ecx, [ebp - 0x494]
call fcn.0041a182
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x402a6e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x494]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x402a57
xor eax, eax
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x402a85
push eax
push 0x108c
call dword [0xaa3484]
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x402afe
mov dword [ebp - 0x50], 0xb7f45b6
cmp dword [ebp - 0x24], eax
jne 0x402a99
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xe0]
xor ecx, ecx
cmp eax, esi
setg cl
cmp ecx, dword [ebp - 0x50]
jne 0x402ab4
mov eax, dword [ebp - 0x6bc]
mov eax, dword [ebp - 0x3c]
neg eax
jne 0x402ac5
cmp dword [ebp - 0x50], 0
jne 0x402ac5
mov ecx, ebx
jmp 0x402ac7
xor ecx, ecx
mov eax, dword [ebp - 0x64]
add eax, ecx
imul eax, dword [ebp - 0x20]
test eax, eax
jne 0x402ad7
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x6bc]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x3c], ebx
sbb eax, eax
neg eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x494]
inc dword [eax]
dec dword [ebp - 0x20]
push 0
pop eax
cmp dword [ebp - 0x20], 0xffffffee
jge 0x402a8a
lea ecx, [ebp - 0x494]
call fcn.0041a254
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x12
je 0x402a3a
dec dword [ebp - 0x64]
cmp dword [ebp - 0x64], 0xfffffffa
push 0
pop eax
jl 0x402995
mov dword [ebp - 0x20], 0x1a
jmp 0x402b49
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x402b46
call dword [0xaa34f8]
xor eax, eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff8
jg 0x402b35
mov dword [ebp - 0x50], 0x1123
cmp dword [ebp - 0x50], 0x13f0
jle 0x402bb4
mov ecx, eax
mov dword [ebp - 0x1c], eax
mov ebx, eax
mov esi, eax
mov edi, eax
mov eax, esi
cdq
idiv edi
add edx, ebx
mov eax, ecx
mov ecx, edx
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xa9fdf8
call fcn.00419f57
inc edi
cmp edi, 0x84c
mov ecx, dword [ebp - 0x1c]
jl 0x402b6a
inc esi
cmp esi, 0x5eb0
push 0
pop eax
jl 0x402b68
inc ebx
cmp ebx, 0x4c2a
jl 0x402b66
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x5d6c
jl 0x402b64
or esi, 0xffffffff
mov dword [ebp - 0x44], 0xd9b95031
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x50], 0xdc6
jge 0x402bda
mov edx, 0xa7d1e0
mov ecx, 0xa9fdf8
call fcn.0041c484
mov dword [ebp - 4], esi
xor eax, eax
xor edi, edi
inc edi
jmp 0x402c09
mov dword [ebp - 0x44], 0xa35ca420
mov dword [ebp - 0x24], 0x3f126c7f
mov dword [ebp - 0x14], 0xb611fb8e
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x1c], eax
jmp 0x402c34
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x7c], 0xb7f3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x402c26
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
xor eax, eax
cmp dword [ebp - 0x7c], eax
je 0x402c4b
mov eax, edi
mov ecx, dword [ebp - 0x7c]
imul ecx, eax
sub ecx, 0x7609
neg ecx
sbb ecx, ecx
add ecx, 0xa
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x7c]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp - 0x7c]
sub eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x23e
setl cl
sub ecx, 0x389a
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x7c]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x54], 0xe291920b
mov dword [ebp - 0x14], 0xffffffe5
jmp 0x402d0b
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x402d03
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], eax
jg 0x402cef
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x7c], ecx
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0
jle 0x402cd6
xor eax, eax
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x402d00
call dword [0xaa34f0]
xor eax, eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], eax
jle 0x402cce
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 9
je 0x402cc1
mov dword [ebp - 0x44], 0x7e2f9d44
push 3
lea ecx, [ebp - 0x2d4]
call fcn.0041a182
mov dword [ebp - 0x14], 0x94643cdf
movdqa xmm0, xmmword [0xa8f630]
movdqu xmmword [ebp - 0xa44], xmm0
lea ecx, [ebp - 0xa44]
lea eax, [ebp - 0xa34]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x954]
call fcn.0041a22e
mov dword [ebp - 0x5c], 0x8fb0b44c
mov dword [ebp - 0x3c], 0xfffffff8
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x48], 0x8677a3b2
mov dword [ebp - 0x20], 0
jmp 0x402d8a
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2d4]
mov dword [eax + ecx*4], 0x10c93b4e
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x402d77
mov dword [ebp - 0x20], 0
jmp 0x402da6
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x20c], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x402d99
mov dword [ebp - 0x20], 0
jmp 0x402dc6
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xb40], 0x5cefd06b
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x402db5
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 2
jg 0x403013
mov edi, dword [ebp - 0x954]
xor ebx, ebx
inc ebx
jmp 0x402deb
or esi, 0xffffffff
mov dword [ebp - 0x50], 0xfffffffe
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], 0xe10a
mov dword [ebp - 0x58], 0xeac3
mov dword [ebp - 0x38], 0x93e3674d
mov dword [ebp - 0x1c], 0
jmp 0x402e24
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x11c], 0x8a600164
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x402e13
mov eax, dword [ebp - 0x14]
cmp dword [edi + 8], 0
jne 0x402f76
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x20c]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2d4]
mov eax, dword [ecx]
xor edx, edx
cmp eax, dword [ecx + esi*4]
setne dl
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x11c], eax
add eax, 0x3cb8
jne 0x402f73
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x28], 0x87a760f2
push ebx
lea ecx, [ebp - 0x410]
call fcn.0041a182
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x402ed1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x410]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x402eb7
xor eax, eax
dec dword [ebp - 0x30]
je 0x402edd
cmp dword [ebp - 0x30], eax
mov esi, ebx
jne 0x402edf
mov esi, eax
cmp dword [ebp - 0x2c], eax
je 0x402f1f
cmp dword [ebp - 0x208], eax
jne 0x402ef7
cmp dword [edi + 8], 0xa7b986af
mov ecx, eax
je 0x402ef9
mov ecx, ebx
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov eax, dword [ebp - 0x410]
cmp dword [eax], 0x1f42
setne dl
mov eax, dword [ebp - 0x11c]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
cmp esi, ecx
setge dl
mov ecx, dword [ebp - 0x410]
mov eax, dword [ecx]
imul eax, edx
mov dword [ecx], eax
xor eax, eax
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], al
je 0x402f63
push eax
push eax
call dword [0xaa3364]
lea ecx, [ebp - 0x410]
call fcn.0041a254
jmp 0x402ffd
or esi, 0xffffffff
mov dword [ebp - 0x30], 0xb4ff5102
mov dword [ebp - 0x50], 0x1021f5eb
mov dword [ebp - 0x50], esi
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x50], ebx
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setg dl
mov ecx, dword [ebp - 0x2c]
sub ecx, edx
mov eax, dword [ebp - 0xb40]
xor edx, edx
cmp ecx, eax
setge dl
mov ecx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0x3c]
imul ecx, edx
mov eax, dword [ebp - 0x2d4]
add ecx, dword [eax + esi*4]
xor edx, edx
test ecx, ecx
setle dl
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x50]
neg ecx
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
xor edx, edx
mov eax, dword [ebp - 0x2d4]
cmp ecx, dword [eax + 4]
setne dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x48], 0
jne 0x403010
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x402de8
xor edi, edi
inc edi
lea ecx, [ebp - 0x954]
call fcn.0041a254
lea ecx, [ebp - 0x2d4]
call fcn.0041a254
or ebx, 0xffffffff
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x58], edi
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 5
jg 0x40311f
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x50], eax
jne 0x403059
cmp dword [ebp - 0x58], eax
mov ecx, eax
je 0x40305b
mov ecx, edi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], 0x1b5e
cmp dword [ebp - 0x34], 0x1cc2
jle 0x4030cd
mov ebx, eax
mov esi, eax
mov edi, eax
mov eax, esi
mov ecx, edi
sar eax, cl
and eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xd70]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd70]
call fcn.0041a653
inc edi
cmp edi, 0xf63
jl 0x403074
inc esi
cmp esi, 0x1ea4
push 0
pop eax
jl 0x403072
inc ebx
cmp ebx, 0x3572
jl 0x403070
xor edi, edi
inc edi
or ebx, 0xffffffff
cmp dword [ebp - 0x50], eax
jne 0x403115
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x34], 0x17d9
jge 0x4030ed
push 0xa7d260
call fcn.004a5ec7
pop ecx
mov dword [ebp - 4], ebx
jmp 0x403115
inc dword [ebp - 0x3c]
xor eax, eax
jmp 0x40303d
mov dword [ebp - 0x4c], 0xfaab39e
mov dword [ebp - 0x50], 0x747f
cmp dword [ebp - 0x50], 0x7617
jle 0x403184
mov esi, eax
jmp 0x40313c
xor eax, eax
mov edi, eax
mov eax, edi
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x1118]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push 1
lea ecx, [ebp - 0x1118]
call fcn.0041a653
inc edi
cmp edi, 0x6bb0
jl 0x40313e
inc esi
cmp esi, 0x7479
jl 0x40313a
xor edi, edi
inc edi
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x50], 0x7267
jge 0x40319f
push 0xa7d308
call fcn.004a5ec7
pop ecx
mov dword [ebp - 4], ebx
jmp 0x4031c5
mov ebx, 0xffff
xor eax, eax
mov dword [ebp - 0x1c], 0x1928c176
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], al
je 0x4031e6
push eax
push eax
push eax
call dword [0xaa33ac]
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x403200
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
je 0x4031fd
push eax
call dword [0xaa3338]
xor eax, eax
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffee
jge 0x4031eb
mov dword [ebp - 0x1c], eax
jmp 0x403218
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xcb0], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x40320b
mov dword [ebp - 0x44], 0x48d327cb
mov dword [ebp - 0x50], 0x5388
cmp dword [ebp - 0x50], 0x5420
jle 0x4032a0
push edi
call dword [0xaa34c0]
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
lea ecx, [ebp - 0xda0]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xda0]
call fcn.0041a653
inc edi
cmp edi, 0x603a
jl 0x403242
inc esi
cmp esi, 0x44ab
jl 0x403240
inc ebx
cmp ebx, 0x6b5a
jl 0x40323e
push 0
call dword [0xaa32fc]
xor edi, edi
inc edi
mov dword [ebp - 0x44], 0xdb505206
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x50], 0x4fee
jge 0x4032c2
push 0xa7d37c
call fcn.004a5ec7
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x4032ed
mov dword [ebp - 0x44], 0x3c8fc558
push edi
lea ecx, [ebp - 0x7b4]
call fcn.0041a182
mov dword [ebp - 0x54], 2
mov dword [ebp - 0x1c], 0
jmp 0x403323
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7b4]
mov dword [eax + ecx*4], 0x214c405b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x403310
inc dword [ebp - 0x54]
mov dword [ebp - 0x54], 7
jmp 0x40336a
mov dword [ebp - 0x50], 0xfffffffa
mov byte [ebp - 0x3d], 0
cmp byte [ebp - 0x3d], 0
je 0x403364
push 0xd12
push 0x19d0
push 0x1832
push 0x742
push 0x173b
call dword [0xaa3090]
inc dword [ebp - 0x50]
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0x1b
jge 0x403334
lea ecx, [ebp - 0x7b4]
call fcn.0041a254
mov dword [ebp - 0x64], 0xffffffe8
cmp dword [ebp - 0x64], 0xa
jge 0x404718
mov dword [ebp - 0x30], 0x870
cmp dword [ebp - 0x30], 0xb7c
jle 0x403419
xor eax, eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
mov dword [ebp - 0x50], ebx
xor esi, esi
cdq
idiv ebx
mov ebx, edx
xor edi, edi
mov eax, esi
cdq
idiv edi
mov eax, ebx
mov ecx, edx
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x1004]
call fcn.004019bd
pop ecx
pop ecx
mov ecx, eax
call fcn.00419f4c
push eax
call fcn.004a5ec7
pop ecx
push 0
push 1
lea ecx, [ebp - 0x1004]
call fcn.0041a653
inc edi
cmp edi, 0x7925
jl 0x4033af
inc esi
cmp esi, 0x6ecb
jl 0x4033ad
mov ebx, dword [ebp - 0x50]
inc ebx
mov dword [ebp - 0x50], ebx
cmp ebx, 0x65e
mov eax, dword [ebp - 0x34]
jl 0x4033a6
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 0x3d3a
jl 0x4033a1
xor edi, edi
inc edi
mov dword [ebp - 0x54], 0xeb06
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x30], 0x6ec
jge 0x40343b
push 0xa7d3d8
call fcn.004a5ec7
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x403466
mov esi, 0xffff
push 3
lea ecx, [ebp - 0x644]
call fcn.0041a182
mov dword [ebp - 0x24], 0xedbda7fe
push edi
lea ecx, [ebp - 0x35c]
call fcn.0041a182
mov dword [ebp - 0x58], 0xff5452fa
mov dword [ebp - 0x14], 0
jmp 0x4034ae
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x644]
mov dword [eax + ecx*4], 0x4e1265ab
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x40349b
mov dword [ebp - 0x14], 0
jmp 0x4034cc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x35c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4034bd
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x644]
mov dword [esi + 8], eax
test eax, eax
jne 0x40352c
push 2
lea ecx, [ebp - 0x930]
call fcn.0041a182
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x38], 0x9a67b9c5
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x404757
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x930]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x404740
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x40476d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x14c], 0xa969
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x40475c
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x930]
call fcn.0041a254
dec dword [ebp - 0x4c]
mov dword [ebp - 0x54], 0xeb06
push 3
lea ecx, [ebp - 0x4dc]
call fcn.0041a182
mov dword [ebp - 0x2c], 0xedbda7fe
push edi
lea ecx, [ebp - 0x458]
call fcn.0041a182
mov dword [ebp - 0x58], 0xff5452fa
mov dword [ebp - 0x14], 0
jmp 0x4047f2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4dc]
mov dword [eax + ecx*4], 0x4e1265ab
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4047df
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], edi
jge 0x40481d
mov edx, 0xffff
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x458]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x404809
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x4dc]
mov dword [esi + 8], eax
test eax, eax
jne 0x404878