Function at 0x477776
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x4c42e5
call fcn.004c34c8
sub esp, 0x348
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], ecx
xor ebx, ebx
mov dword [ebp - 0x30], ebx
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0xa4]
call fcn.0044ceac
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x24], 0x2d34caa8
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x2c], ebx
jmp 0x4777cf
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xa4]
mov dword [eax + ecx*4], 0xd21dfe4b
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x4777bc
mov eax, dword [ebp - 0xa4]
mov ecx, edi
sub ecx, dword [eax]
imul ecx, dword [eax]
cmp ecx, 0xb1c03809
sbb eax, eax
neg eax
mov dword [ebp - 0x30], eax
je 0x4777f7
cmp dword [ebp - 0x30], ebx
mov ecx, edi
jne 0x4777f9
mov ecx, ebx
mov dword [ebp - 0x30], 0x891f782a
xor eax, eax
cmp ecx, edi
setne al
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0xa4]
cmp ecx, dword [eax]
setl dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, dword [ebp - 0xa4]
imul ecx, dword [eax]
mov dword [eax], ecx
xor eax, eax
test ecx, ecx
sete al
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x24], 0xffffffe9
jmp 0x477851
mov dword [ebp - 0x40], 9
cmp dword [ebp - 0x40], ebx
jne 0x477856
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jne 0x477842
lea ecx, [ebp - 0xa4]
call fcn.0044cf7e
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x40], 0x78fa
mov dword [ebp - 0x2c], ebx
jmp 0x477885
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x1e4], 0xde0bcd8c
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x477874
mov dword [ebp - 0x18], ebx
jmp 0x4778ca
mov dword [ebp - 0x2c], 0x10b999fb
mov dword [ebp - 0x2c], ebx
jmp 0x4778b8
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x4778b5
push 0x20ec
push 0xd34
push ebx
call dword [0xadd4c8]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jle 0x47789c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1e4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x477890
mov dword [ebp - 0x18], 2
jmp 0x47790f
mov dword [ebp - 0x2c], 0xad9bacc5
mov dword [ebp - 0x40], 0xffcf33f2
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x40], 0x348f4a8f
mov dword [ebp - 0x2c], ebx
jmp 0x477906
mov dword [ebp - 0x30], 0x329ef4a0
inc dword [ebp - 0x30]
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffff
jle 0x4778f9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xf
jge 0x4778d8
mov eax, dword [0xadb740]
test al, 1
jne 0x477999
or eax, edi
mov dword [0xadb740], eax
mov dword [0xadb720], ebx
mov dword [0xadb724], ebx
push ebx
push ebx
call fcn.00457aad
mov dword [0xadb720], eax
mov dword [0xadb728], ebx
mov dword [0xadb730], ebx
mov dword [0xadb73c], 0x3f800000
mov dword [ebp - 0x98], eax
mov dword [0xadb72c], ebx
lea eax, [ebp - 0x98]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1f8]
push eax
mov ecx, 0xadb728
call fcn.00457852
mov dword [0xadb734], 7
mov dword [0xadb738], 8
push 0x4c493b
call fcn.004adcfd
pop ecx
mov dword [ebp - 0x18], 0xe57bf5cd
mov dword [ebp - 0x2c], ebx
jmp 0x4779b2
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x22c], ebx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jl 0x4779a5
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x228], edi
mov dword [ebp - 0x18], 8
jmp 0x477a16
mov dword [ebp - 0x40], 0x44401d1b
mov dword [ebp - 0x30], 0x5542afa0
mov dword [ebp - 0x2c], ebx
jmp 0x4779f7
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x254], 0xffffffff
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x4779e6
inc dword [ebp - 0x30]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x477a13
push 0x12d0
call dword [0xadd530]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x32
jge 0x4779d3
imul eax, dword [ebp - 0x4c], 0x2710
add eax, dword [ebp - 0x48]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x50]
push eax
call fcn.00479e94
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], edi
mov byte [ebp - 0x19], bl
mov dword [ebp - 0x18], 0x1855
cmp dword [ebp - 0x18], 0x1aed
jle 0x477aba
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x20], ebx
mov ecx, esi
shl eax, cl
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
mov ecx, esi
shl eax, cl
and eax, ebx
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc esi
cmp esi, 0x3506
mov eax, dword [ebp - 0x34]
jl 0x477a6d
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x4255
push 0
pop ebx
mov eax, dword [ebp - 0x2c]
jl 0x477a5d
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x26d7
jl 0x477a58
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x1664
jl 0x477a53
cmp byte [ebp - 0x19], 0
je 0x477ac7
push ebx
call dword [0xadd560]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0x17f0
jge 0x477ae2
mov edx, 0xac38cc
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x477b0b
mov dword [ebp - 0x18], ebx
jmp 0x477bb6
mov dword [ebp - 0x28], 0xade2167
mov dword [ebp - 0x20], 0x1e3ff14e
mov dword [ebp - 0x30], 0xf5ac3d6c
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x30], 0xac3a6081
mov dword [ebp - 0x20], 6
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 5
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setle cl
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setle dl
imul edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], ebx
jne 0x477b94
cmp dword [ebp - 0x28], ebx
mov ecx, ebx
je 0x477b96
mov ecx, edi
dec dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
sub eax, ecx
add eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x477b13
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x477e39
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], 0xe5f3
mov dword [ebp - 0x20], 0xb257
push edi
lea ecx, [ebp - 0x12c]
call fcn.0044ceac
mov dword [ebp - 0x2c], ebx
jmp 0x477c02
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x12c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x477bf3
mov dword [ebp - 0x28], ebx
mov esi, 0xf746
cmp dword [ebp - 0x28], 3
jl 0x477e29
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
je 0x477d99
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x48], 0xffffffff
cmp dword [ebp - 0x38], ebx
je 0x477d7e
mov dword [ebp - 0x48], 0xfffffff7
mov dword [ebp - 0x24], 0x7c3e
cmp dword [ebp - 0x24], 0x7e48
jle 0x477cbb
push ebx
push 0x12e8
push ebx
call dword [0xadd3b8]
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], 0x2efe
cdq
push edx
push eax
lea ecx, [ebp - 0x274]
call fcn.00401993
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x477c8c
mov eax, dword [eax]
push eax
call fcn.004add27
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x274]
call fcn.0044d288
mov eax, dword [ebp - 0x30]
add eax, esi
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x14]
jne 0x477c74
inc esi
cmp esi, 0x2960
jl 0x477c68
mov esi, 0xf746
mov dword [ebp - 0x40], 0x58c4
mov dword [ebp - 4], 2
cmp dword [ebp - 0x24], 0x7975
jge 0x477cdd
push 0xac3908
call fcn.004add27
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x477d0b
mov dword [ebp - 0x30], 0x5cf8b874
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setle dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, 0xa922a198
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
dec eax
neg eax
sbb eax, eax
neg eax
cmp eax, 0x3607a988
jne 0x477d6f
cmp dword [ebp - 0x38], ebx
mov eax, ebx
je 0x477d71
mov eax, edi
add eax, 0xedaa
mov dword [ebp - 0x48], eax
jmp 0x477e21
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x477e21
push ebx
push ebx
push ebx
call dword [0xadd2e0]
jmp 0x477e21
mov dword [ebp - 0x24], 0x48af
mov dword [ebp - 0x1d0], esi
mov dword [ebp - 0x1cc], esi
mov dword [ebp - 0x1c8], esi
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x48], 0xcdaa9320
cmp dword [ebp - 0x24], ebx
jne 0x477dc7
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, 2
setl al
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp dword [ebp - 0x48], eax
setg cl
cmp ecx, 0xfffffffe
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x12c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x28], eax
jle 0x477e0f
cmp dword [ebp - 0x24], ebx
je 0x477e1a
cmp dword [ebp - 0x24], ebx
je 0x477e1a
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x48], 0xf83bf0
inc dword [ebp - 0x28]
jmp 0x477c0f
lea ecx, [ebp - 0x12c]
call fcn.0044cf7e
jmp 0x479dca
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x24], 0xa29822cb
mov dword [ebp - 0x30], 0xffff
mov dword [ebp - 0x38], 0x37c5b151
push 2
lea ecx, [ebp - 0x198]
call fcn.0044ceac
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
jmp 0x477e79
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x198]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x477e6a
mov dword [ebp - 0x18], ebx
jmp 0x477e95
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x25c], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x477e84
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
je 0x477ed1
mov dword [ebp - 0x24], 0xb008
cmp dword [ebp - 0x24], ebx
je 0x477ec6
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], 0xfff7
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x2c]
mov ecx, edi
jle 0x477ec8
mov ecx, ebx
mov eax, dword [ebp - 0x2c]
sub ecx, eax
mov edx, edi
jne 0x477ed3
mov edx, ebx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
sub edx, 0xbd13d8c5
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x198]
mov dword [eax], edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setl cl
mov edx, 0x506e
sub edx, ecx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setne cl
sub ecx, 0x3fd5
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x198]
call fcn.0044cf7e
mov eax, dword [0xadb740]
test al, 2
jne 0x477faf
or eax, 2
mov dword [0xadb740], eax
mov dword [0xadb750], ebx
mov dword [0xadb754], ebx
push ebx
push ebx
call fcn.00457aad
mov dword [0xadb750], eax
mov dword [0xadb758], ebx
mov dword [0xadb760], ebx
mov dword [0xadb76c], 0x3f800000
mov dword [ebp - 0xcc], eax
mov dword [0xadb75c], ebx
lea eax, [ebp - 0xcc]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1e8]
push eax
mov ecx, 0xadb758
call fcn.00457852
mov dword [0xadb764], 7
mov dword [0xadb768], 8
push 0x4c4936
call fcn.004adcfd
pop ecx
mov dword [ebp - 0x2c], 0xf7e2799a
mov dword [ebp - 0x2c], ebx
jmp 0x478026
mov dword [ebp - 0x14], 0xfd4914d2
cmp dword [ebp - 0x14], ebx
jne 0x47802c
mov dword [ebp - 0x14], ebx
jmp 0x47801d
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x478005
push 0x148b
push 0x901
push 0xb38
push 0x1a30
push 0x2003
push 0x370
push 0x471
push 0x2b
push 0xbf7
call dword [0xadd164]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x47801a
push ebx
push 0x92f
call dword [0xadd118]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe2
jle 0x477fcc
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffe9
jl 0x477fbb
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x78], xmm0
push 4
lea ecx, [ebp - 0x144]
call fcn.0044ceac
mov dword [ebp - 0x18], ebx
jmp 0x478057
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x344], 0xfffffff7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x478046
mov dword [ebp - 0x18], ebx
jmp 0x478075
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x144]
mov dword [eax + ecx*4], 5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x478062
mov esi, dword [ebp - 0x144]
mov dword [esi + 8], ebx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x4780a8
push 0x1a91
push ebx
push 0x5ff
push 0x1ec1
push 0x1f8b
call dword [0xadd154]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x4780b8
push ebx
call dword [0xadd2ec]
inc dword [esi + 8]
cmp dword [esi + 8], 3
jle 0x478084
lea ecx, [ebp - 0x144]
call fcn.0044cf7e
lea eax, [ebp - 0x4c]
push eax
call fcn.00479ef6
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
push 3
lea ecx, [ebp - 0x108]
call fcn.0044ceac
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x18], 0x3874
cmp dword [ebp - 0x18], 0x39f7
jle 0x478172
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov eax, ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], ecx
mov ecx, esi
mov esi, dword [ebp - 0x14]
shl esi, cl
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x20], esi
mov ecx, eax
sar esi, cl
mov eax, esi
mov ecx, ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc ebx
cmp ebx, 0x674d
jl 0x478124
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x58d8
push 0
pop ebx
mov esi, dword [ebp - 0x14]
jl 0x47811a
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x2b1e
mov ecx, dword [ebp - 0x24]
jl 0x478108
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x69f0
jl 0x478103
push edi
lea ecx, [ebp - 0xf0]
call fcn.0044ceac
mov dword [ebp - 4], 4
cmp dword [ebp - 0x18], 0x34c5
jge 0x47819d
mov edx, 0xac3970
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x4781c6
mov dword [ebp - 0x28], 0x328d
cmp dword [ebp - 0x28], 0x3621
jle 0x47825e
call dword [0xadd268]
mov dword [ebp - 0x18], ebx
mov ecx, ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], 0x7012
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov eax, ecx
cdq
idiv esi
mov esi, edx
mov dword [ebp - 0x38], 0x4c4
mov eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x31c]
call fcn.00401993
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47821c
mov eax, dword [eax]
push eax
call fcn.004add27
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x31c]
call fcn.0044d288
dec esi
dec dword [ebp - 0x38]
jne 0x478202
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x58a8
mov ecx, dword [ebp - 0x14]
jl 0x4781f4
mov eax, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x14], ecx
dec dword [ebp - 0x24]
jne 0x4781ef
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x66
jl 0x4781e3
mov dword [ebp - 0x14], 0x6aed1d25
mov dword [ebp - 4], 6
cmp dword [ebp - 0x28], 0x3043
jge 0x478280
push 0xac39d0
call fcn.004add27
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4782a9
mov dword [ebp - 0x18], ebx
jmp 0x4782c1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x108]
mov dword [eax + ecx*4], 0xec3203b
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4782ae
mov dword [ebp - 0x18], ebx
jmp 0x4782db
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xf0]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4782cc
mov ecx, dword [ebp - 0x108]
mov dword [ebp - 0x34], ecx
mov eax, 0x108531d1
sub eax, dword [ecx + 8]
mov dword [ecx + 8], eax
push 0
pop eax
setne al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xf0]
mov esi, dword [eax]
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, esi
setge cl
mov eax, 0xf4039ee4
cmp eax, ecx
sbb eax, eax
inc eax
mov ecx, 0xffff49ad
sub ecx, eax
xor eax, eax
cmp ecx, esi
setl al
xor edx, edx
cmp eax, esi
setg dl
mov eax, dword [ebp - 0xf0]
mov dword [eax], edx
mov ecx, 0x4bf8
sub ecx, edx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp dword [ebp - 0x20], eax
setg cl
cmp ecx, dword [ebp - 0x14]
jle 0x47836e
mov eax, dword [ebp - 0x34]
cmp dword [eax + 8], ebx
mov eax, ebx
je 0x478370
mov eax, edi
add dword [ebp - 0x14], eax
lea ecx, [ebp - 0xf0]
call fcn.0044cf7e
lea ecx, [ebp - 0x108]
call fcn.0044cf7e
cmp byte [ebp + 0xc], 0
jne 0x478399
cmp dword [ebp - 0x2c], 0
jne 0x478ed9
mov dword [ebp - 0x24], 0xb9f9b31
mov dword [ebp - 0x44], 0xfffffffa
mov dword [ebp - 0x30], 0x78ee
cmp dword [ebp - 0x30], 0x792f
jle 0x478403
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x38], ebx
add eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x28c]
call fcn.00401993
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4783d8
mov eax, dword [eax]
push eax
call fcn.004add27
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x28c]
call fcn.0044d288
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x1aab
jl 0x4783be
inc esi
cmp esi, 0x147a
jl 0x4783b9
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp - 4], 8
cmp dword [ebp - 0x30], 0x7754
jge 0x478425
push 0xac3a7c
call fcn.004add27
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47844e
mov dword [ebp - 0x38], 0x45b8
cmp dword [ebp - 0x38], 0x45ef
jle 0x478488
mov esi, ebx
mov dword [ebp - 0x20], ebx
lea eax, [ebx + esi]
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc ebx
cmp ebx, 0x7cbc
jl 0x478463
inc esi
cmp esi, 0x7f70
push 0
pop ebx
jl 0x478460
push edi
lea ecx, [ebp - 0x18c]
call fcn.0044ceac
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x38], 0x425f
jge 0x4784b3
mov edx, 0xac3aa8
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x4784dc
mov dword [ebp - 0x14], ebx
jmp 0x4784f0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4784e1
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0xffffffea
jge 0x478710
mov dword [ebp - 0x1c0], 0xdd8d
mov dword [ebp - 0x1bc], 0xdd8d
mov dword [ebp - 0x1b8], 0xdd8d
mov dword [ebp - 0x1b4], 0xdd8d
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x24], ebx
je 0x4785cd
push 2
lea ecx, [ebp - 0x1f4]
call fcn.0044ceac
mov dword [ebp - 0x20], 0xd1bca9d6
mov dword [ebp - 0x20], 0xa98815cb
mov dword [ebp - 0x20], 0xcb3a3fc4
push 2
lea ecx, [ebp - 0x1dc]
call fcn.0044ceac
mov dword [ebp - 0x18], ebx
jmp 0x47858b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1f4]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x478578
mov dword [ebp - 0x18], ebx
jmp 0x4785a9
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1dc]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x478596
dec dword [ebp - 0x28]
lea ecx, [ebp - 0x1dc]
call fcn.0044cf7e
lea ecx, [ebp - 0x1f4]
call fcn.0044cf7e
jmp 0x478708
mov dword [ebp - 0x3c], 0xdbaf9eb1
mov dword [ebp - 0x44], 0x2e9
cmp dword [ebp - 0x44], 0x48a
jle 0x47862e
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], 0x4ce4
mov ebx, dword [ebp - 0x14]
and eax, ebx
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
mov eax, dword [ebp - 0x38]
add eax, esi
mov dword [ebp - 0x38], eax
dec dword [ebp - 0x30]
jne 0x4785f8
inc esi
cmp esi, 0x73df
push 0
pop ebx
jl 0x4785e9
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x6b91
jl 0x4785e7
mov dword [ebp - 0x18], 0x1bfe
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x44], 0xffffff98
jge 0x478651
mov edx, 0xac3b10
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x47867a
mov dword [ebp - 0x14], ebx
jmp 0x478690
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x220], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x47867f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1bc]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x18]
imul ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x44]
add ecx, eax
jne 0x4786be
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], 0xd1c
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18c]
sub ecx, dword [eax]
mov dword [ebp - 0x20], ecx
jne 0x4786f1
cmp dword [ebp - 0x14], ebx
mov ecx, ebx
je 0x4786f3
mov ecx, edi
mov eax, dword [ebp - 0x28]
imul eax, ecx
cmp eax, 0xfff8
sbb eax, eax
neg eax
mov dword [ebp - 0x21c], eax
dec dword [ebp - 0x24]
jmp 0x4784f8
lea ecx, [ebp - 0x18c]
call fcn.0044cf7e
lea eax, [ebp - 0x354]
push eax
mov dl, byte [ebp + 0xc]
mov ecx, dword [ebp - 0x4c]
call fcn.00462e88
pop ecx
mov esi, eax
lea edi, [ebp - 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x38], 0x3e62
cmp dword [ebp - 0x38], 0x40f2
jle 0x4787c6
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x3c], 0x723a
mov esi, ebx
mov dword [ebp - 0x34], esi
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x20], ebx
mov eax, edi
cdq
idiv esi
mov dword [ebp - 0x30], edx
mov ebx, 0x9cc
mov edi, dword [ebp - 0x20]
mov esi, edx
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
add edi, esi
dec ebx
jne 0x478789
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x7efe
mov edi, dword [ebp - 0x28]
jl 0x478774
mov edi, dword [ebp - 0x44]
add dword [ebp - 0x28], edi
dec dword [ebp - 0x3c]
jne 0x47876c
inc edi
mov dword [ebp - 0x44], edi
cmp edi, 0x4db9
jl 0x478762
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x38], 0x3c14
jge 0x4787e5
mov edx, 0xac3b48
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x47880b
xor edi, edi
inc edi
mov dword [ebp - 0x20], 0x4416
cmp dword [ebp - 0x20], 0x45a1
jle 0x4788a5
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], ebx
mov eax, ebx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x38], 0x7045
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], 0x5add
mov esi, dword [ebp - 0x28]
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x2bc]
call fcn.00401993
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47885b
mov eax, dword [eax]
push eax
call fcn.004add27
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x2bc]
call fcn.0044d288
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x3c]
jne 0x478841
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x44]
add eax, esi
mov dword [ebp - 0x44], eax
dec dword [ebp - 0x38]
jne 0x478834
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x52a7
jl 0x478828
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x6cd5
jl 0x478825
mov dword [ebp - 0x28], ebx
jmp 0x4788b7
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xc0], edi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x4788aa
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x20], 0x4220
jge 0x4788d8
push 0xac3b88
call fcn.004add27
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x478901
mov dword [ebp - 0x28], ebx
jmp 0x478917
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xc8], 0xffffffff
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x478906
mov dword [ebp - 0x28], ebx
jmp 0x478933
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xb0], 0x3703acb6
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x478922
mov dword [ebp - 0xb8], 0xfff12f3c
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x5f5b
setl cl
mov eax, dword [ebp - 0xb8]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, 0xeafb5d1c
cmp eax, edx
sbb eax, eax
neg eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0x28], 0xf5f40e13
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, 0xfd77ccca
setne cl
mov eax, dword [ebp - 0xac]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
cmp ecx, 0x34e
setge dl
mov eax, dword [ebp - 0xac]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0xfffffffd
setg al
cmp eax, dword [ebp - 0xb0]
je 0x4789c4
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0x16
jge 0x478c21
mov dword [ebp - 0x34], 0x214f
cmp dword [ebp - 0x34], 0x243d
jle 0x478a3e
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x20], ecx
mov ebx, dword [ebp - 0x24]
mov eax, esi
cdq
idiv ecx
mov eax, ebx
mov ecx, edx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
mov ecx, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x7e0d
jl 0x4789fd
inc esi
cmp esi, 0x62c7
push 0
pop ebx
jl 0x4789f5
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x3b2c
jl 0x4789f3
mov dword [ebp - 0x30], 0xbbe7
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x34], 0x2053
jge 0x478a64
mov edx, 0xac3be4
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x478a8d
mov esi, 0xffff
mov dword [ebp - 0x20], 0xfffffff9
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], edi
jg 0x478bf3
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x3c], 0xda8
mov dword [ebp - 0x20], 0x7fc0
cmp dword [ebp - 0x20], 0x8362
jle 0x478b13
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov eax, esi
xor eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x2e0]
call fcn.00401993
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x478ae2
mov eax, dword [eax]
push eax
call fcn.004add27
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x2e0]
call fcn.0044d288
inc esi
cmp esi, 0x3f23
mov ecx, dword [ebp - 0x24]
jl 0x478ac6
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x4fcf
jl 0x478ac4
mov esi, 0xffff
mov dword [ebp - 0x24], ebx
jmp 0x478b49
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], ebx
jl 0x478b46
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0xbc], ebx
jne 0x478b46
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x478b41
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xadd2a8]
dec dword [ebp - 0x28]
jns 0x478b20
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jle 0x478b18
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x20], 0x7c51
jge 0x478b6a
push 0xac3c00
call fcn.004add27
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x478b98
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xc0]
mov eax, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xc0]
mov eax, dword [ebp - 0xac]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xb8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xc8]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc0], ebx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
jmp 0x478a9c
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc4]
xor edx, edx
test eax, eax
setg dl
mov ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
neg ecx
xor eax, eax
cmp edx, ecx
sete al
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x14]
jmp 0x4789d6
cmp byte [ebp + 0xc], 0
je 0x478ed9
cmp dword [ebp - 0x70], 0
je 0x478ed9
mov dword [ebp - 0x24], 0x477862fd
mov dword [ebp - 0x14], 0xa20b95ae
mov dword [ebp - 0x18], 0xfffffff6
mov dword [ebp - 0x24], 0xf
cmp dword [ebp - 0x24], 0xfffffff0
je 0x478e6c
mov dword [ebp - 0x34], 0x4cfa
cmp dword [ebp - 0x34], 0x4eb9
jle 0x478cb4
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x30]
lea ecx, [eax + esi]
mov eax, ebx
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x6c99
jl 0x478c78
inc esi
cmp esi, 0x7192
push 0
pop ebx
jl 0x478c70
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x590b
jl 0x478c6e
push 2
lea ecx, [ebp - 0xd8]
call fcn.0044ceac
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x34], 0x4acb
jge 0x478ce0
mov edx, 0xac3c50
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x478d09
mov dword [ebp - 0x14], ebx
jmp 0x478d21
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xd8]
mov dword [eax + ecx*4], 0x39ba
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x478d0e
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x28], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edi
setl cl
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x30], 0x6021
cmp dword [ebp - 0x30], 0x621f
jle 0x478dba
mov esi, ebx
mov dword [ebp - 0x38], ebx
mov eax, esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x44], 0x4bba
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], 0x5ab9
mov esi, ebx
mov ebx, dword [ebp - 0x20]
mov eax, ebx
or eax, esi
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc esi
cmp esi, 0x6a06
jl 0x478d79
dec ebx
mov dword [ebp - 0x20], ebx
dec dword [ebp - 0x34]
push 0
pop ebx
jne 0x478d74
mov eax, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x44]
jne 0x478d6a
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x1dee
jl 0x478d5e
mov eax, dword [ebp - 0x14]
push 0xfffffffffffffff8
pop ecx
mov eax, dword [ebp - 0xd8]
sub ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
cmp dword [eax + 4], 0x5e32
mov byte [ebp - 0x19], bl
jg 0x478e04
cmp byte [ebp - 0x19], 0
je 0x478e11
push ebx
push 0x12e8
push ebx
call dword [0xadd3b8]
jmp 0x478e11
cmp byte [ebp - 0x19], 0
je 0x478e11
push ebx
call dword [0xadd088]
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x30], 0x5d50
jge 0x478e30
mov edx, 0xac3cb0
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x478e59
lea ecx, [ebp - 0xd8]
call fcn.0044cf7e
dec dword [ebp - 0x24]
jmp 0x478c51
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], 0xfffffff2
jmp 0x478e90
mov dword [ebp - 0x20], 0x951ad386
cmp dword [ebp - 0x20], ebx
jne 0x478e96
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffff0
je 0x478e81
mov dword [ebp - 0x18], 0xffffffe4
jmp 0x478eca
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x478ec7
push 0x20d
push 0x1e65
push 0x1140
push 0x2598
push 0x20c3
call dword [0xadd070]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffef
jne 0x478e9f
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x14], 0x10e1
mov dword [ebp - 0x30], 0xfffffffe
mov dword [ebp - 0x20], 0x23d4a1cf
mov dword [ebp - 0x20], edi
movdqa xmm0, xmmword [0xac93d0]
movdqu xmmword [ebp - 0x208], xmm0
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xdc], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x208]
push eax
push ebx
lea ecx, [ebp - 0xe4]
call fcn.0044ec0e
mov dword [ebp - 0x20], 0x13ca4d9a
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x20], 0xfaf14186
cmp dword [ebp - 0x14], ebx
jne 0x478fb3
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x30]
mov ecx, 0xffff
cmp ecx, eax
sbb eax, eax
inc eax
xor edx, edx
cmp eax, edi
setle dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
cmp ecx, 0x31aa08
setne dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
mov edx, dword [ebp - 0x14]
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
mov eax, ebx
je 0x478fb5
mov eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x14], 0xfff8
sbb edx, edx
neg edx
neg edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x20], ecx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x478fea
push ebx
push 0x8fc
call dword [0xadd4d0]
lea ecx, [ebp - 0xe4]
call fcn.0044cf7e
cmp dword [ebp - 0x2c], 0
jne 0x47959e
cmp dword [ebp - 0x78], 0
jle 0x47959e
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x20], 0xda7ef5d8
mov dword [ebp - 0x14], ebx
jmp 0x479029
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x214], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x47901c
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 2
jg 0x4790aa
mov esi, 0x170cd509
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x214], ebx
jne 0x4790aa
mov dword [ebp - 0x24], 2
cmp dword [ebp - 0x24], ebx
jl 0x4790a1
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x7c], ebx
jmp 0x479096
mov dword [ebp - 0x14], 0xb1b055cc
mov dword [ebp - 0x14], ebx
jmp 0x47908d
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x47908a
call dword [0xadd2f8]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x47907b
inc dword [ebp - 0x7c]
cmp dword [ebp - 0x7c], 2
jle 0x47906f
dec dword [ebp - 0x24]
jns 0x479058
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x47903d
mov dword [ebp - 0x18], ebx
jmp 0x4790d5
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x4790be
call dword [0xadd53c]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x4790d2
push 0x1058
call dword [0xadd134]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xa
jge 0x4790af
mov dword [ebp - 0x24], edi
push 3
lea ecx, [ebp - 0x180]
call fcn.0044ceac
mov dword [ebp - 0x14], ebx
jmp 0x4790ff
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x180]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4790f0
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
je 0x479264
mov dword [ebp - 0x18], edi
push edi
lea ecx, [ebp - 0x15c]
call fcn.0044ceac
mov dword [ebp - 0x20], 0xbda99da9
mov dword [ebp - 0x14], ebx
jmp 0x47913f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x15c]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x47912c
dec dword [ebp - 0x18]
mov dword [ebp - 0x18], ebx
jmp 0x479247
push edi
lea ecx, [ebp - 0x5c]
call fcn.0044ceac
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x479170
cmp dword [ebp - 0x14], edi
jl 0x479164
cmp dword [ebp - 0x18], ebx
jle 0x47914f
lea ecx, [ebp - 0x15c]
call fcn.0044cf7e
inc dword [ebp - 0x24]
jne 0x479111
lea ecx, [ebp - 0x180]
call fcn.0044cf7e
mov dword [ebp - 0x28], 0x70cd
mov dword [ebp - 0x14], edi
push 2
lea ecx, [ebp - 0x1b0]
call fcn.0044ceac
mov dword [ebp - 0x20], 0x411d7fea
push edi
lea ecx, [ebp - 0x174]
call fcn.0044ceac
mov dword [ebp - 0x18], ebx
jmp 0x4792b1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1b0]
mov dword [eax + ecx*4], 0xa97f51ef
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x47929e
mov dword [ebp - 0x18], ebx
jmp 0x4792cc
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x174]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4792bc
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], 0x3847
cmp dword [ebp - 0x14], ebx
jne 0x4792f6
mov dword [ebp - 0x18], 0xfffe
mov dword [ebp - 0x20], 0xfffffff7
push edi
lea ecx, [ebp - 0x114]
call fcn.0044ceac
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x44], 0x6091
cmp dword [ebp - 0x44], 0x646c
jle 0x47961a
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x34], 0x1894
mov esi, ebx
mov ebx, dword [ebp - 0x20]
mov eax, esi
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc esi
cmp esi, 0x3243
jl 0x4795e4
mov esi, dword [ebp - 0x3c]
add ebx, esi
mov dword [ebp - 0x20], ebx
dec dword [ebp - 0x34]
push 0
pop ebx
jne 0x4795df
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x73e8
jl 0x4795d5
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x44], 0x5d04
jge 0x479640
mov edx, 0xac3d88
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x479669
mov dword [ebp - 0x14], ebx
jmp 0x479681
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x114]
mov dword [eax + ecx*4], 0xe64e6dc6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x47966e
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
add ecx, eax
mov eax, dword [ebp - 0x114]
mov dword [eax], ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x114]
call fcn.0044cf7e
lea ecx, [ebp - 0x78]
call fcn.0046fce4
mov dword [ebp - 0x28], 0x13dd33a4
mov dword [ebp - 0x3c], 0x2d51
cmp dword [ebp - 0x3c], 0x2ecf
jle 0x47974a
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], 0x6c9f
cdq
push edx
push eax
lea ecx, [ebp - 0x334]
call fcn.00401993
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x479714
mov eax, dword [eax]
push eax
call fcn.004add27
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x334]
call fcn.0044d288
mov eax, dword [ebp - 0x20]
add eax, esi
mov dword [ebp - 0x20], eax
dec dword [ebp - 0x34]
jne 0x4796fc
inc esi
cmp esi, 0x5fb6
jl 0x4796f0
push 0x14e1
push ebx
call dword [0xadd250]
mov dword [ebp - 4], 0x1e
cmp dword [ebp - 0x3c], 0x29c6
jge 0x479765
push 0xac3dd0
call fcn.004add27
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47978e
mov dword [ebp - 0x14], ebx
jmp 0x4797a4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2ec], 0x51c6076f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x479793
mov dword [ebp - 0x28], 0xf
cmp dword [ebp - 0x28], 0xffffffe9
jg 0x47994a
mov dword [ebp - 0x14], 0x1bd97a88
push edi
lea ecx, [ebp - 0x120]
call fcn.0044ceac
mov dword [ebp - 0x14], ebx
jmp 0x4797e6
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x120]
mov dword [eax + ecx*4], 0x9eeda585
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4797d3
mov dword [ebp - 0x14], 4
cmp dword [ebp - 0x14], 0xfffffffb
jne 0x479937
mov dword [ebp - 0x18], 0xfb5a5efa
mov dword [ebp - 0x18], ebx
jmp 0x479810
cmp dword [ebp - 0x18], ebx
jne 0x479819
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x1a
jle 0x479808
cmp dword [ebp - 0x18], ebx
jge 0x47991e
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x18], 0x3271
cmp dword [ebp - 0x18], 0x3491
jle 0x4798ba
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x47992f
lea ecx, [ebp - 0x120]
call fcn.0044cf7e
dec dword [ebp - 0x28]
jmp 0x4797b1
mov dword [ebp - 0x28], ebx
jmp 0x4799c0
push 4
lea ecx, [ebp - 0xfc]
call fcn.0044ceac
mov dword [ebp - 0x14], ebx
jmp 0x479974
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xfc]
mov dword [eax + ecx*4], 0x70051efd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x479961
mov eax, dword [ebp - 0xfc]
mov dword [eax], 2
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x4799a8
push ebx
push ebx
push ebx
push 0xb12
push 0x1941
push ebx
push 0x225d
call dword [0xadd110]
mov eax, dword [ebp - 0xfc]
dec dword [eax]
jns 0x479986
lea ecx, [ebp - 0xfc]
call fcn.0044cf7e
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jle 0x47994f
cmp dword [ebp - 0x40], 0
jne 0x479c33
cmp dword [ebp - 0x2c], 0
je 0x479c33
mov dword [ebp - 0x24], edi
push 3
lea ecx, [ebp - 0x150]
call fcn.0044ceac
mov dword [ebp - 0x14], ebx
jmp 0x4799fe
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x150]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4799ef
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
je 0x479c08
mov dword [ebp - 0x14], 0x2e91a04
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xfffffff9
jne 0x479d21
push edi
lea ecx, [ebp - 0x168]
call fcn.0044ceac
mov dword [ebp - 0x48], 0x4a72
cmp dword [ebp - 0x48], 0x4dc2
jle 0x479c9e
mov esi, ebx
mov dword [ebp - 0x40], ebx
mov eax, ebx
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc ebx
cmp ebx, 0x78f4
jl 0x479c68
inc esi
cmp esi, 0x655e
push 0
pop ebx
jl 0x479c65
push 0x2435
push 0x15b9
call dword [0xadd474]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 4], 0x24
cmp dword [ebp - 0x48], 0x49f6
jge 0x479cc0
mov edx, 0xac3ed8
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x479ce9
mov dword [ebp - 0x2c], ebx
jmp 0x479d01
mov dword [ebp - 0x34], 0x6a31
cmp dword [ebp - 0x34], 0x6aee
jle 0x479d95
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x40], ebx
mov eax, ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
lea ecx, [edi + esi]
mov dword [ebp - 0x3c], ecx
mov edi, ecx
and edi, eax
mov esi, ebx
mov eax, edi
or eax, esi
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc esi
cmp esi, 0x4c60
jl 0x479d4f
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp eax, 0x369e
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x40]
jl 0x479d40
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0x7b4a
jl 0x479d3b
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x479da7
push ebx
push ebx
push ebx
call dword [0xadd04c]
mov dword [ebp - 4], 0x26
cmp dword [ebp - 0x34], 0x667a
jge 0x479dc6
mov edx, 0xac3f20
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
mov edi, eax
lea esi, [ebp - 0x94]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret