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

Disassembly:
mov eax, 0x4a96df
call fcn.004a8940
sub esp, 0xce0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x78], dl
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x20], 0x7c203980
mov dword [ebp - 0x38], 0xfffffff9
mov dword [ebp - 0x3c], 4
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x34], 0xa08bbd18
xor edi, edi
inc edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x3c], 0xfda6
mov dword [ebp - 0x34], 0xf8169c14
movdqa xmm0, xmmword [0xaaa690]
movdqu xmmword [ebp - 0x7e4], xmm0
lea ecx, [ebp - 0x7e4]
lea eax, [ebp - 0x7d4]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x660]
call fcn.0042c9a8
mov dword [ebp - 0x3c], 0x7eb6652f
mov dword [ebp - 0x20], 0x41e55969
mov dword [ebp - 0x3c], 7
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
sub ecx, 0x4d07
je 0x47f20a
cmp dword [ebp - 0x24], eax
mov edx, edi
jne 0x47f20c
mov edx, eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x8fbf
setle al
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, dword [ebp - 0x24]
mov eax, 0xffff
cmp eax, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x3c], eax
je 0x47f253
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0x3829
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, edx
setge cl
mov eax, dword [ebp - 0x660]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x20]
imul eax, ecx
cmp eax, dword [ebp - 0x20]
jle 0x47f29f
cmp dword [ebp - 0x20], 0
je 0x47f29f
mov eax, edi
jmp 0x47f2a1
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x660]
call fcn.0042c9ce
push 2
pop esi
push esi
lea ecx, [ebp - 0x4c0]
call fcn.0042c8fc
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x18], 0
jmp 0x47f2e1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c0]
mov dword [eax + ecx*4], 0x5b57
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x47f2ce
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], 0
jl 0x47f306
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c0]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [ebp - 0x18]
jns 0x47f2ef
lea ecx, [ebp - 0x4c0]
call fcn.0042c9ce
mov dword [ebp - 0x20], 0x7c203980
mov dword [ebp - 0x38], 0xfffffff9
mov dword [ebp - 0x1c], 0x315362d
mov dword [ebp - 0x40], 0x52a26f3f
or ebx, 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], 0xcf4a4163
push 4
lea ecx, [ebp - 0x26c]
call fcn.0042c8fc
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x48], 0x2401dbda
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], 0x540a
cmp dword [ebp - 0x34], 0x54f5
jle 0x47f3b5
push 0x1e36
call dword [0xaba140]
xor edi, edi
xor esi, esi
xor ebx, ebx
lea eax, [esi + edi]
mov ecx, ebx
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xab6b98
call fcn.0042c6d4
inc ebx
cmp ebx, 0xa88
jl 0x47f375
inc esi
cmp esi, 0x8010
jl 0x47f373
inc edi
cmp edi, 0x3819
jl 0x47f371
push 0
call dword [0xaba3a0]
xor edi, edi
inc edi
or ebx, 0xffffffff
push 2
pop esi
mov dword [ebp - 0x18], 0
jmp 0x47f3d1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x26c]
mov dword [eax + ecx*4], 0xb3bfa32a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x47f3be
and dword [ebp - 4], 0
cmp dword [ebp - 0x34], 0x5212
jge 0x47f3f3
mov edx, 0xaa87e0
mov ecx, 0xab6b98
call fcn.0042ef5a
mov dword [ebp - 4], ebx
jmp 0x47f41e
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
test eax, eax
jne 0x47f42e
dec dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, 0xf9db
setl cl
add ecx, dword [ebp - 0x20]
cmp ecx, 0xdf860956
je 0x47f44f
cmp dword [ebp - 0x48], 0
jne 0x47f44f
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
xor edx, edx
test eax, eax
setns dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [ebp - 0x40]
test ecx, ecx
jne 0x47f474
xor eax, eax
cmp dword [ebp - 0x28], eax
mov edx, eax
je 0x47f476
mov edx, edi
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setle cl
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
setg dl
imul edx, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, 0xe708
setl cl
mov eax, dword [ebp - 0x26c]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x26c]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0xfffffffe
setne cl
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, 5
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x20]
imul edx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, dword [ebp - 0x26c]
mov dword [eax], ecx
lea ecx, [ebp - 0x26c]
call fcn.0042c9ce
mov dword [ebp - 0x3c], 4
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x154], edi
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x34], 0x7213ec75
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], ebx
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x47f546
push 0x6ea
push eax
push 0xbb2
push eax
push 0x4d4
push 0x2b0
call dword [0xaba2ac]
mov eax, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x158]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x154]
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, 0x466b
setne cl
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x34], 0x4d8e5ccc
push esi
lea ecx, [ebp - 0x4d8]
call fcn.0042c8fc
mov dword [ebp - 0x30], 0xf7e7308
mov dword [ebp - 0x3c], 0xdf5e
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x18], 0
jmp 0x47f5c3
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4d8]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x47f5b4
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
dec dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4d8]
cmp dword [ecx + 4], 0
je 0x47f5e3
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp eax, edi
setl dl
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x4d8]
call fcn.0042c9ce
mov dword [ebp - 0x34], 0xa08bbd18
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x3c], 0xfda6
mov dword [ebp - 0x34], 0xf8169c14
mov dword [ebp - 0x38], 0x6030
cmp dword [ebp - 0x38], 0x61cf
jle 0x47f6ce
xor eax, eax
mov dword [ebp - 0x28], eax
xor ebx, ebx
mov dword [ebp - 0x34], ebx
xor edi, edi
mov ecx, ebx
shl eax, cl
mov dword [ebp - 0x3c], eax
xor esi, esi
mov ebx, eax
mov ecx, edi
sar ebx, cl
mov eax, ebx
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xb50]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47f66b
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb50]
call fcn.0042ceaa
inc esi
cmp esi, 0x1e83
jl 0x47f64f
inc edi
cmp edi, 0xed2
mov eax, dword [ebp - 0x3c]
jl 0x47f647
mov ebx, dword [ebp - 0x34]
inc ebx
mov dword [ebp - 0x34], ebx
cmp ebx, 0x3962
mov eax, dword [ebp - 0x28]
jl 0x47f63e
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x21b4
jl 0x47f639
push 0xef9
push 0xb8d
push 0
call dword [0xaba41c]
xor edi, edi
inc edi
or ebx, 0xffffffff
push 2
pop esi
movdqa xmm0, xmmword [0xaaa690]
movdqu xmmword [ebp - 0x844], xmm0
lea ecx, [ebp - 0x844]
lea eax, [ebp - 0x834]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x678]
call fcn.0042c9a8
mov dword [ebp - 4], esi
cmp dword [ebp - 0x38], 0x5f2b
jge 0x47f70f
push 0xaa8864
call fcn.00493197
pop ecx
mov dword [ebp - 4], ebx
jmp 0x47f737
xor eax, eax
mov dword [ebp - 0x3c], 0x7eb6652f
mov dword [ebp - 0x34], 0x70db
cmp dword [ebp - 0x34], 0x71e1
jle 0x47f7b2
push eax
push edi
push 0xd1b
call dword [0xaba154]
xor edi, edi
xor esi, esi
mov eax, esi
xor eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xa0c]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47f77d
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xa0c]
call fcn.0042ceaa
inc esi
cmp esi, 0x6ced
jl 0x47f761
inc edi
cmp edi, 0x3961
jl 0x47f75f
xor eax, eax
push eax
push eax
call dword [0xaba360]
xor edi, edi
inc edi
mov dword [ebp - 0x20], 0x41e55969
mov dword [ebp - 4], 4
cmp dword [ebp - 0x34], 0x700b
jge 0x47f7d4
push 0xaa8880
call fcn.00493197
pop ecx
mov dword [ebp - 4], ebx
jmp 0x47f7fa
mov esi, 0xffff
mov dword [ebp - 0x3c], 7
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, 0x4d07
je 0x47f82f
cmp dword [ebp - 0x24], 0
je 0x47f82f
mov edx, edi
jmp 0x47f831
xor edx, edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x8fbf
setle al
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, dword [ebp - 0x24]
cmp esi, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x3c], eax
je 0x47f873
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0x3829
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, edx
setge cl
mov eax, dword [ebp - 0x678]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x20]
imul eax, ecx
cmp eax, dword [ebp - 0x20]
jle 0x47f8bf
cmp dword [ebp - 0x20], 0
je 0x47f8bf
mov eax, edi
jmp 0x47f8c1
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x678]
call fcn.0042c9ce
mov dword [ebp - 0x58], 0x1c30
cmp dword [ebp - 0x58], 0x1df2
jle 0x47f947
xor edi, edi
mov dword [ebp - 0x38], edi
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0x573
xor esi, esi
mov edi, dword [ebp - 0x24]
mov eax, edi
cdq
idiv esi
mov ebx, edx
mov edi, 0x22a6
mov eax, ebx
cdq
push edx
push eax
mov ecx, 0xab6b98
call fcn.0042c6d4
dec ebx
dec edi
jne 0x47f901
inc esi
cmp esi, 0x23e1
mov edi, dword [ebp - 0x24]
jl 0x47f8f5
mov edi, dword [ebp - 0x38]
add dword [ebp - 0x24], edi
dec dword [ebp - 0x34]
jne 0x47f8f0
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x803f
jl 0x47f8e4
push 0xffe
push 0
call dword [0xaba3a4]
xor edi, edi
inc edi
movdqa xmm0, xmmword [0xaaa630]
movdqu xmmword [ebp - 0x804], xmm0
lea ecx, [ebp - 0x804]
lea eax, [ebp - 0x7f4]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x690]
call fcn.0042c9a8
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x30], 0x68876942
mov dword [ebp - 0x30], 0x708ef6b8
mov dword [ebp - 0x34], 0x471dfd94
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], eax
jmp 0x47f9a8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x718], 3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x47f997
mov eax, dword [ebp - 0x690]
mov dword [eax + 0xc], edi
dec dword [ebp - 0x34]
lea ecx, [ebp - 0x690]
call fcn.0042c9ce
mov dword [ebp - 4], 6
cmp dword [ebp - 0x58], 0x1aaf
jge 0x47f9e3
mov edx, 0xaa88dc
mov ecx, 0xab6b98
call fcn.0042ef5a
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x47fa0e
xor eax, eax
mov dword [ebp - 0x30], 0x3556
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x47fa32
push eax
push 0xa28
push 0x1088
call dword [0xaba298]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x47fa47
push eax
push 0x1eba
call dword [0xaba064]
mov dword [ebp - 0x20], 0x7c203980
mov dword [ebp - 0x34], 0x75c96dd1
mov dword [ebp - 0x24], 0xdf2f4a8b
push edi
lea ecx, [ebp - 0x1fc]
call fcn.0042c8fc
movdqa xmm0, xmmword [0xaaa620]
movdqu xmmword [ebp - 0x884], xmm0
lea ecx, [ebp - 0x884]
lea eax, [ebp - 0x874]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x6a8]
call fcn.0042c9a8
mov dword [ebp - 0x38], 0x145714ff
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x5ec], ebx
mov dword [ebp - 0x5e8], ebx
mov dword [ebp - 0x5e4], ebx
mov dword [ebp - 0x5e0], ebx
mov dword [ebp - 0x18], 0
jmp 0x47facc
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1fc]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x47fabd
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1fc]
je 0x47faee
cmp dword [ecx], 0
je 0x47faee
mov edx, edi
jmp 0x47faf0
xor edx, edx
xor eax, eax
cmp dword [ecx], edx
setge al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1fc]
add ecx, dword [eax]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x6a8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x38]
imul ecx, eax
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x4b5e4957
setg al
mov dword [ebp - 0x5e4], eax
lea ecx, [ebp - 0x6a8]
call fcn.0042c9ce
lea ecx, [ebp - 0x1fc]
call fcn.0042c9ce
mov dword [ebp - 0x34], 0xfffffff9
push 2
lea ecx, [ebp - 0x4f0]
call fcn.0042c8fc
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x34], 0x5d8c
cmp dword [ebp - 0x34], 0x5e1f
jle 0x47fbc1
xor edi, edi
xor esi, esi
mov eax, esi
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xc10]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47fb96
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc10]
call fcn.0042ceaa
inc esi
cmp esi, 0x6ada
jl 0x47fb7a
inc edi
cmp edi, 0x2d45
jl 0x47fb78
xor edi, edi
inc edi
mov dword [ebp - 4], 8
cmp dword [ebp - 0x34], 0x5bb1
jge 0x47fbdc
push 0xaa8904
call fcn.00493197
pop ecx
mov dword [ebp - 4], ebx
jmp 0x47fc04
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x47fc2a
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4f0]
mov dword [eax + ecx*4], 0x5b57
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x47fc0f
xor eax, eax
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], eax
jl 0x47fc49
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4f0]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [ebp - 0x18]
jns 0x47fc32
lea ecx, [ebp - 0x4f0]
call fcn.0042c9ce
mov dword [ebp - 0x44], 4
mov dword [ebp - 0x1c], 0x315362d
mov dword [ebp - 0x40], 0x52a26f3f
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], 0xcf4a4163
push 4
lea ecx, [ebp - 0x288]
call fcn.0042c8fc
mov dword [ebp - 0x34], 0x197d
cmp dword [ebp - 0x34], 0x1bee
jle 0x47fd02
xor edx, edx
mov dword [ebp - 0x18], edx
xor ebx, ebx
xor edi, edi
xor esi, esi
lea ecx, [esi + edi]
mov eax, ebx
shl eax, cl
xor eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xa3c]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47fcbc
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xa3c]
call fcn.0042ceaa
inc esi
cmp esi, 0x6e3f
mov edx, dword [ebp - 0x18]
jl 0x47fc9b
inc edi
cmp edi, 0x5ac2
jl 0x47fc99
inc ebx
cmp ebx, 0x19ee
jl 0x47fc97
inc edx
mov dword [ebp - 0x18], edx
cmp edx, 0x3b5
jl 0x47fc95
xor edi, edi
inc edi
or ebx, 0xffffffff
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0x15d8
jge 0x47fd20
push 0xaa8940
call fcn.00493197
pop ecx
mov dword [ebp - 4], ebx
jmp 0x47fd48
push 0xfffffffffffffffe
pop esi
xor eax, eax
mov dword [ebp - 0x48], 0x2401dbda
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x18], eax
jmp 0x47fd6f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x288]
mov dword [eax + ecx*4], 0xb3bfa32a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x47fd5c
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
test eax, eax
jne 0x47fd85
dec dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, 0xf9db
setl cl
add ecx, dword [ebp - 0x20]
cmp ecx, 0xdf860956
je 0x47fda6
cmp dword [ebp - 0x48], 0
jne 0x47fda6
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
xor edx, edx
test eax, eax
setns dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [ebp - 0x40]
test ecx, ecx
jne 0x47fdcb
xor eax, eax
cmp dword [ebp - 0x28], eax
mov edx, eax
je 0x47fdcd
mov edx, edi
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setle cl
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
setg dl
imul edx, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, 0xe708
setl cl
mov eax, dword [ebp - 0x288]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x288]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, esi
setne cl
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, 5
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x20]
imul edx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, dword [ebp - 0x288]
mov dword [eax], ecx
lea ecx, [ebp - 0x288]
call fcn.0042c9ce
mov dword [ebp - 0x28], 4
mov dword [ebp - 0x1b8], edi
mov dword [ebp - 0x1b4], edi
mov dword [ebp - 0x1b0], edi
mov dword [ebp - 0x1ac], edi
mov dword [ebp - 0x34], 0x7213ec75
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], ebx
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x47fe9c
push 0x6ea
push eax
push 0xbb2
push eax
push 0x4d4
push 0x2b0
call dword [0xaba2ac]
mov eax, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, 0x466b
setne cl
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x2c], 0xa08bbd18
mov dword [ebp - 0x34], 0x4d8e5ccc
push 2
lea ecx, [ebp - 0x55c]
call fcn.0042c8fc
mov dword [ebp - 0x30], 0xf7e7308
mov dword [ebp - 0x3c], 0xdf5e
mov dword [ebp - 0x48], 2
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x18], 0
jmp 0x47ff22
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x55c]
mov dword [eax + ecx*4], 2
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x47ff0f
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
dec dword [ebp - 0x48]
mov ecx, dword [ebp - 0x55c]
cmp dword [ecx + 4], 0
je 0x47ff43
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp eax, edi
setl dl
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x55c]
call fcn.0042c9ce
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x48], 9
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x34], 0xb87
cmp dword [ebp - 0x34], 0xb96
jle 0x47fff8
xor edx, edx
mov dword [ebp - 0x18], edx
xor ebx, ebx
xor edi, edi
xor esi, esi
mov eax, edi
mov ecx, esi
sar eax, cl
xor eax, ebx
or eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xb80]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47ffb2
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb80]
call fcn.0042ceaa
inc esi
cmp esi, 0xe7e
mov edx, dword [ebp - 0x18]
jl 0x47ff90
inc edi
cmp edi, 0x3e05
jl 0x47ff8e
inc ebx
cmp ebx, 0x2c23
jl 0x47ff8c
inc edx
mov dword [ebp - 0x18], edx
cmp edx, 0xa7b
jl 0x47ff8a
xor edi, edi
inc edi
or ebx, 0xffffffff
mov dword [ebp - 0x4c], 0xfffffffa
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x34], 0x86c
jge 0x48001a
push 0xaa8974
call fcn.00493197
pop ecx
mov dword [ebp - 4], ebx
jmp 0x480040
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x70], 3
mov dword [ebp - 0x20], 0x2a19820b
mov dword [ebp - 0x34], 0x6d7b
cmp dword [ebp - 0x34], 0x6e88
jle 0x4800ba
mov ecx, eax
mov dword [ebp - 0x18], eax
mov ebx, eax
mov esi, eax
mov edi, eax
mov eax, esi
cdq
idiv edi
and edx, ebx
and edx, ecx
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xab6b98
call fcn.0042c6d4
inc edi
cmp edi, 0x64f0
mov ecx, dword [ebp - 0x18]
jl 0x480072
inc esi
cmp esi, 0x1e53
push 0
pop eax
jl 0x480070
inc ebx
cmp ebx, 0x17cb
jl 0x48006e
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x6fab
jl 0x48006c
xor edi, edi
inc edi
or ebx, 0xffffffff
mov dword [ebp - 0x30], ebx
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x34], 0x6c48
jge 0x4800df
mov edx, 0xaa89dc
mov ecx, 0xab6b98
call fcn.0042ef5a
mov dword [ebp - 4], ebx
jmp 0x480107
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x64], 0x22a5
push 2
lea ecx, [ebp - 0x574]
call fcn.0042c8fc
mov dword [ebp - 0x1c], 0
jmp 0x48013c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x370], 0x65e1bfed
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x48012b
mov dword [ebp - 0x1c], 0
jmp 0x48015e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x574]
mov dword [eax + ecx*4], 5
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48014b
mov dword [ebp - 0x48], ebx
cmp dword [ebp - 0x48], 0x17
jle 0x4804e0
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x3c], 0x5378470e
mov dword [ebp - 0x30], 4
mov dword [ebp - 0x30], 0xdc99220c
push 3
lea ecx, [ebp - 0x148]
call fcn.0042c8fc
mov dword [ebp - 0x34], 0xe0d6
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x44], 0x402d6fa8
xor eax, eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x18], eax
jmp 0x4801cb
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x148]
mov dword [eax + ecx*4], 0x233fd52a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4801b8
dec dword [ebp - 0x24]
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x24]
neg eax
xor edx, edx
cmp eax, dword [ecx + 8]
setg dl
mov ecx, dword [ebp - 0x3c]
sub ecx, 5
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp edx, ecx
setge al
xor ecx, ecx
cmp eax, 0x16658069
setle cl
add ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setg dl
sub edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x370]
imul edx, eax
mov eax, dword [ebp - 0x34]
add eax, edx
push 0
pop eax
sets al
sub eax, dword [ebp - 0x20]
xor ebx, ebx
cmp eax, 0xfffffffa
setne bl
sub ebx, 0x5a14
mov edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, ebx
setle al
sub eax, 0x4d2c
je 0x480275
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x4804ca
push eax
call dword [0xaba094]
jmp 0x4804ca
push edi
lea ecx, [ebp - 0x388]
call fcn.0042c8fc
mov dword [ebp - 0x3c], 0x29d3eafc
mov dword [ebp - 0x30], 5
mov dword [ebp - 0x60], 0xd86c3ce9
mov dword [ebp - 0x54], 0xfffffff7
mov dword [ebp - 0x50], 0x1e52
cmp dword [ebp - 0x50], 0x21aa
jle 0x480332
xor ebx, ebx
mov dword [ebp - 0x58], ebx
xor edi, edi
mov dword [ebp - 0x38], edi
xor esi, esi
mov eax, ebx
cdq
idiv edi
mov ecx, edx
mov dword [ebp - 0x34], ecx
xor ebx, ebx
mov edi, 0x6a9a
mov eax, ebx
and eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0xa6c]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4802ea
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xa6c]
call fcn.0042ceaa
add ebx, esi
dec edi
mov ecx, dword [ebp - 0x34]
jne 0x4802ce
inc esi
cmp esi, 0x645f
jl 0x4802c7
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x5def
mov ebx, dword [ebp - 0x58]
jl 0x4802bb
inc ebx
mov dword [ebp - 0x58], ebx
cmp ebx, 0x69ac
jl 0x4802b6
xor edi, edi
inc edi
mov dword [ebp - 0x30], 0xe05bf5ef
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x50], 0x1bd2
jge 0x480354
push 0xaa8a20
call fcn.00493197
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x48037f
xor eax, eax
mov dword [ebp - 0x30], 8
mov dword [ebp - 0x18], eax
jmp 0x48039c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x388]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x48038d
inc dword [ebp - 0x40]
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x68]
xor edx, edx
cmp eax, dword [ecx + 4]
setg dl
xor ecx, ecx
cmp edx, 0xfffffffd
setle cl
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
setg dl
imul edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp - 0x3c]
inc eax
add ecx, eax
mov eax, dword [ebp - 0x388]
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x36c]
xor ebx, ebx
cmp ecx, eax
setg bl
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp eax, esi
setl dl
xor ecx, ecx
mov eax, dword [ebp - 0x388]
cmp dword [eax], 0xb704dcf7
setne cl
sub edx, ecx
cmp edx, ebx
jle 0x48041d
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x48041f
mov eax, edi
imul eax, eax, 0xf8da
test eax, eax
jne 0x48042e
cmp dword [ebp - 0x64], eax
je 0x480430
mov eax, edi
xor ecx, ecx
cmp ecx, eax
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x54]
cmp edx, eax
setge cl
imul ecx, ecx, 0xad05
sub ecx, dword [ebp - 0x60]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x148]
cmp ecx, dword [eax + 8]
je 0x48045f
xor eax, eax
cmp dword [ebp - 0x44], eax
je 0x480461
mov eax, edi
mov ecx, dword [ebp - 0x20]
imul ecx, eax
mov eax, dword [ebp - 0x148]
mov dword [eax], ecx
mov eax, dword [ebp - 0x574]
mov esi, dword [eax]
mov ecx, dword [ebp - 0x64]
add ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x48]
xor ebx, ebx
cmp ecx, eax
setg bl
sub ebx, dword [ebp - 0x24]
neg ebx
sbb ebx, ebx
inc ebx
sub ebx, esi
neg ebx
sbb ebx, ebx
inc ebx
xor edx, edx
cmp ebx, esi
setg dl
mov eax, dword [ebp - 0x368]
mov ecx, dword [ebp - 0x370]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, edx
setg al
mov dword [ebp - 0x60], eax
lea ecx, [ebp - 0x388]
call fcn.0042c9ce
lea ecx, [ebp - 0x148]
call fcn.0042c9ce
inc dword [ebp - 0x48]
or ebx, 0xffffffff
jmp 0x480167
lea ecx, [ebp - 0x574]
call fcn.0042c9ce
mov dword [ebp - 0x44], 0xfda6
mov dword [ebp - 0x2c], 0xf8169c14
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], 0xcb5a
mov dword [ebp - 0x2c], 0x166c1932
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x48052d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58c], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x480518
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x48055b
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x480558
push eax
push 0xd9d
push 0x26c8
push 0x5f2
push 0xd54
call dword [0xaba05c]
xor eax, eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jle 0x480532
mov esi, 0xffff
cmp dword [ebp - 0x58c], eax
jne 0x4805aa
mov eax, dword [ebp - 0x588]
xor edx, edx
test eax, eax
sets dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
sub ecx, esi
jne 0x480590
xor eax, eax
cmp dword [ebp - 0x38], eax
je 0x480592
mov eax, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
xor eax, eax
cmp dword [ebp - 0x38], eax
mov edx, eax
je 0x4805ac
mov edx, edi
mov eax, dword [ebp - 0x58c]
xor ecx, ecx
cmp eax, edx
setl cl
mov eax, dword [ebp - 0x20]
imul eax, ecx
mov dword [ebp - 0x20], eax
movdqa xmm0, xmmword [0xaaa690]
movdqu xmmword [ebp - 0x7b4], xmm0
lea ecx, [ebp - 0x7b4]
lea eax, [ebp - 0x7a4]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x6b8]
call fcn.0042c9a8
mov dword [ebp - 0x44], 0x7eb6652f
mov dword [ebp - 0x18], 6
mov dword [ebp - 0x44], 0xacb8f2ba
mov dword [ebp - 0x2c], 0x8b01
mov eax, dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x48063a
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x480622
call dword [0xaba28c]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x4806b2
push eax
push eax
push eax
call dword [0xaba31c]
jmp 0x4806b0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x34], 0x2aa9dade
mov dword [ebp - 0x60], 0x9fa8bc07
mov dword [ebp - 0x44], 0xe2fe8172
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 0x79ae4f78
setg cl
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x2c]
je 0x480676
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0x45
setge cl
xor edx, edx
cmp ecx, ebx
setge dl
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [ebp - 0x24]
xor edx, edx
cmp ecx, ebx
setg dl
mov eax, dword [ebp - 0x60]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x44], ecx
xor eax, eax
mov dword [ebp - 0x20], 0x41e55969
mov dword [ebp - 0x1c], 0xe1757117
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffe4
jge 0x48088a
mov dword [ebp - 0x3f4], 3
mov dword [ebp - 0x3f0], 3
mov dword [ebp - 0x3ec], 3
mov dword [ebp - 0x3e8], 3
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x60], 0x89063530
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 4
jge 0x480724
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7a4], 3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x48070b
xor eax, eax
mov dword [ebp - 0x38], 0x56e2
cmp dword [ebp - 0x38], 0x5a96
jle 0x4807b9
mov ebx, eax
mov dword [ebp - 0x34], ebx
jmp 0x480741
xor eax, eax
mov edi, eax
mov eax, ebx
cdq
idiv edi
mov ebx, edx
mov dword [ebp - 0x2c], 0x2fb7
xor esi, esi
mov eax, ebx
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xc64]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x480771
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc64]
call fcn.0042ceaa
inc esi
cmp esi, 0xbfa
jl 0x480753
inc ebx
dec dword [ebp - 0x2c]
jne 0x480751
inc edi
cmp edi, 0x7ac9
mov ebx, dword [ebp - 0x34]
jl 0x480743
inc ebx
mov dword [ebp - 0x34], ebx
cmp ebx, 0x3278
jl 0x48073f
xor edi, edi
inc edi
or ebx, 0xffffffff
mov esi, 0xffff
cmp dword [ebp - 0x1c], 0
jne 0x4807c5
mov eax, dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], 0x1f09a2b4
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x44]
jne 0x4807fc
xor eax, eax
cmp dword [ebp - 0x1c], eax
jne 0x4807fc
cmp dword [ebp - 0x79c], eax
je 0x4807fe
mov eax, edi
mov ecx, 0x208af066
sub ecx, eax
add ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x798]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x60], ecx
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x38], 0x565d
jge 0x48083d
push 0xaa8aa8
call fcn.00493197
pop ecx
mov dword [ebp - 4], ebx
jmp 0x48086a
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x480880
push eax
push 0x9a6
call dword [0xaba3fc]
dec dword [ebp - 0x1c]
xor eax, eax
jmp 0x4806c6
mov dword [ebp - 0x44], 7
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, 0x4d07
je 0x4808ba
cmp dword [ebp - 0x28], 0
je 0x4808ba
mov edx, edi
jmp 0x4808bc
xor edx, edx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x8fbf
setle al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x2c]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, dword [ebp - 0x28]
cmp esi, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x44], eax
je 0x4808fe
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], 0x3829
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, edx
setge cl
mov eax, dword [ebp - 0x6b8]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x20]
imul eax, ecx
cmp eax, dword [ebp - 0x20]
jle 0x48094a
cmp dword [ebp - 0x20], 0
je 0x48094a
mov eax, edi
jmp 0x48094c
xor eax, eax
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x6b8]
call fcn.0042c9ce
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x30], 0xce9d05ba
push edi
lea ecx, [ebp - 0x6cc]
call fcn.0042c8fc
mov dword [ebp - 0x34], 0x2a83
mov dword [ebp - 0x18], 0
jmp 0x480998
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6cc]
mov dword [eax + ecx*4], 0xb25b3b9d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x480985
inc dword [ebp - 0x2c]
inc dword [ebp - 0x34]
lea ecx, [ebp - 0x6cc]
call fcn.0042c9ce
mov dword [ebp - 0x58], 0x44cd
cmp dword [ebp - 0x58], 0x4642
jle 0x480a5d
call dword [0xaba2ec]
xor ebx, ebx
mov dword [ebp - 0x38], ebx
xor edi, edi
mov dword [ebp - 0x34], edi
xor esi, esi
mov dword [ebp - 0x44], edi
xor edi, ebx
xor ebx, ebx
mov dword [ebp - 0x2c], 0x2af4
mov eax, edi
or eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xa9c]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4809fe
mov eax, dword [eax]
push eax
call fcn.00493197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xa9c]
call fcn.0042ceaa
add ebx, esi
dec dword [ebp - 0x2c]
jne 0x4809e2
inc esi
cmp esi, 0x521b
jl 0x4809d9
mov edi, dword [ebp - 0x34]
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0x2ce2
mov ebx, dword [ebp - 0x38]
jl 0x4809d2
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, 0x67e9
jl 0x4809cd
push 0x16c4
xor eax, eax
push eax
push eax
push 0x1369
push eax
call dword [0xaba338]
xor edi, edi
inc edi
or ebx, 0xffffffff
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x30], 0xce9d05ba
push edi
lea ecx, [ebp - 0x6e4]
call fcn.0042c8fc
mov dword [ebp - 0x34], 0x2a83
mov dword [ebp - 0x18], 0
jmp 0x480a9b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6e4]
mov dword [eax + ecx*4], 0xb25b3b9d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x480a88
inc dword [ebp - 0x2c]
inc dword [ebp - 0x34]
lea ecx, [ebp - 0x6e4]
call fcn.0042c9ce
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x58], 0x445e
jge 0x480acc
push 0xaa8b00
call fcn.00493197
pop ecx
mov dword [ebp - 4], ebx
jmp 0x480af4
mov dword [ebp - 0x28], 0x715f0ed1
push 3
lea ecx, [ebp - 0x208]
call fcn.0042c8fc
mov dword [ebp - 0x18], 0xfffe
mov dword [ebp - 0x44], 0x1e6e836
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x40], 0xe0689bb5
mov dword [ebp - 0x1c], 0
jmp 0x480b40
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x208]
mov dword [eax + ecx*4], 0x2eb2fc25
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x480b2d
mov dword [ebp - 0x1c], 0
jmp 0x480b5c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6c0], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x480b4f
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
cmp eax, 0xfff9
jne 0x480b73
mov esi, edi
jmp 0x480b75
xor esi, esi
mov edx, dword [ebp - 0x208]
mov eax, dword [edx]
inc eax
xor ecx, ecx
cmp esi, eax
setg cl
imul ecx, dword [edx + 4]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x208]
cmp ecx, dword [eax]
jg 0x480ba6
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x208]
mov dword [eax + 8], 0xfffffff9
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xfffffff7
setle cl
add ecx, dword [ebp - 0x40]
je 0x480bdf
cmp dword [ebp - 0x40], 0
je 0x480bdf
mov eax, edi
jmp 0x480be1
xor eax, eax
mov dword [ebp - 0x6bc], eax
lea ecx, [ebp - 0x208]
call fcn.0042c9ce
mov dword [ebp - 0x28], 0x715f0ed1
push 3
lea ecx, [ebp - 0x2d8]
call fcn.0042c8fc
mov dword [ebp - 0x18], 0xfffe
mov dword [ebp - 0x44], 0x1e6e836
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x40], 0xe0689bb5
mov dword [ebp - 0x1c], 0
jmp 0x480c3e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2d8]
mov dword [eax + ecx*4], 0x2eb2fc25
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x480c2b
mov dword [ebp - 0x1c], 0
jmp 0x480c5a
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x72c], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x480c4d
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
cmp eax, 0xfff9
jne 0x480c71
mov esi, edi
jmp 0x480c73
xor esi, esi
mov edx, dword [ebp - 0x2d8]
mov eax, dword [edx]
inc eax
xor ecx, ecx
cmp esi, eax
setg cl
imul ecx, dword [edx + 4]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x2d8]
cmp ecx, dword [eax]
jg 0x480ca4
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2d8]
mov dword [eax + 8], 0xfffffff9
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xfffffff7
setle cl
add ecx, dword [ebp - 0x40]
je 0x480cdd
cmp dword [ebp - 0x40], 0
je 0x480cdd
mov eax, edi
jmp 0x480cdf
xor eax, eax
mov dword [ebp - 0x728], eax
lea ecx, [ebp - 0x2d8]
call fcn.0042c9ce
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x480d14
push 0xfffffffffffffffe
pop edx
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2cc], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x480d00
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x480d26
push eax
call dword [0xaba46c]
xor eax, eax
mov dword [ebp - 0x2cc], 8
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], 0x10d21dfe
push edi
lea ecx, [ebp - 0x298]
call fcn.0042c8fc
mov dword [ebp - 0x24], 0x9fb1c038
push edi
lea ecx, [ebp - 0x220]
call fcn.0042c8fc
mov dword [ebp - 0x48], 0x2ff3e141
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x40], 0x9dfeee83
mov dword [ebp - 0x30], 0x4523830a
mov dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], edi
jge 0x480d9a
xor esi, esi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x298]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x480d86
mov dword [ebp - 0x1c], 0
jmp 0x480db6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x220]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x480da3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x24]
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x298]
mov dword [eax], esi
mov edx, dword [ebp - 0x20]
inc edx
mov eax, dword [ebp - 0x220]
mov dword [eax], edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setle cl
add ecx, esi
mov dword [ebp - 0x48], ecx
je 0x480e10
mov eax, dword [ebp - 0x220]
xor esi, esi
cmp dword [eax], esi
je 0x480e10
cmp dword [ebp - 0x28], esi
je 0x480e10
mov edx, edi
jmp 0x480e12
xor edx, edx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, dword [ebp - 0x28]
add eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setge cl
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x480f5d
mov dword [ebp - 0x30], ebx
push 2
lea ecx, [ebp - 0x6fc]
call fcn.0042c8fc
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x38], 0x192e
cmp dword [ebp - 0x38], 0x1c57
jle 0x480ece
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x2c], 0x5e73
xor edi, edi
xor esi, esi
mov eax, edi
mov ecx, esi
sar eax, cl
or eax, ebx
cdq
push edx
push eax
mov ecx, 0xab6b98
call fcn.0042c6d4
inc esi
cmp esi, 0x4cdd
jl 0x480e8c
inc edi
cmp edi, 0x2e5d
jl 0x480e8a
dec ebx
dec dword [ebp - 0x2c]
jne 0x480e88
mov ebx, dword [ebp - 0x34]
inc ebx
mov dword [ebp - 0x34], ebx
cmp ebx, 0xa7c
jl 0x480e7e
xor edi, edi
inc edi
or ebx, 0xffffffff
mov dword [ebp - 0x30], 0x764f
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x38], 0x17e1
jge 0x480ef4
mov edx, 0xaa8b44
mov ecx, 0xab6b98
call fcn.0042ef5a
mov dword [ebp - 4], ebx
jmp 0x480f1c
xor eax, eax
mov dword [ebp - 0x30], 0x6aee
mov dword [ebp - 0x2c], 0x5094191b
mov dword [ebp - 0x18], eax
jmp 0x480f44
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6fc]
mov dword [eax + ecx*4], 0x32397bde
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x480f31
inc dword [ebp - 0x2c]
lea ecx, [ebp - 0x6fc]
call fcn.0042c9ce
jmp 0x480fdf
mov dword [ebp - 0x28], 0xf04f
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], 0x52b7283d
mov dword [ebp - 0x2c], 0xfffffff6
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x480fb5
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x298]
xor esi, esi
cmp dword [eax], esi
je 0x480f9d
cmp dword [ebp - 0x28], esi
je 0x480f9d
mov edx, edi
jmp 0x480f9f
xor edx, edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x220]
cmp ecx, dword [eax]
jg 0x480fbc
xor eax, eax
cmp dword [ebp - 0x2c], eax
mov ecx, eax
je 0x480fbe
mov ecx, edi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x298]
mov dword [eax], ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x220]
call fcn.0042c9ce
lea ecx, [ebp - 0x298]
call fcn.0042c9ce
mov dword [ebp - 0x30], 0xce9d05ba
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x2c], 0xd5493e
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x2c], 0x530c4e2b
mov dword [ebp - 0x44], 0x37ae9f90
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x48]
jle 0x481026
xor eax, eax
cmp dword [ebp - 0x48], eax
je 0x481028
mov eax, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x48]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], 0xfffffff6
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x11], 0
cmp byte [ebp - 0x11], 0
je 0x48106b
push 0x5ba
call dword [0xaba410]
push edi
lea ecx, [ebp - 0x714]
call fcn.0042c8fc
mov dword [ebp - 0x20], 0xe8cff0ea
mov dword [ebp - 0x20], ebx
xor eax, eax
cmp dword [ebp - 0x20], 0xfffffffa
jg 0x48117f
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x481165
mov dword [ebp - 0x58], 0x666b
cmp dword [ebp - 0x58], 0x695a
jle 0x481117
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], 0x4d96
xor esi, esi
mov ebx, eax
mov edi, 0x1b38
mov eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xbb0]
call fcn.00401988
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4810d9
push eax
push eax
push eax
call dword [0xaba324]
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x58], 0x641b
jge 0x48113b
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x481177
push eax
push eax
push eax
call dword [0xaba2f4]
dec dword [ebp - 0x20]
jmp 0x481081
mov dword [ebp - 0x20], eax
jmp 0x4811ae
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x481197
cmp dword [ebp - 0x20], 0xfffffff6
jg 0x481184
mov dword [ebp - 0x20], 0x2a83
mov dword [ebp - 0x28], 0x715f0ed1
push 3
lea ecx, [ebp - 0x230]
call fcn.0042c8fc
mov dword [ebp - 0x18], 0xfffe
mov dword [ebp - 0x44], 0x1e6e836
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x40], 0xe0689bb5
mov dword [ebp - 0x1c], 0
jmp 0x481207