Function at 0x47ab6f
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4e1a3f
call fcn.004e0d10
sub esp, 0x268
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x14], 0xebb0
mov dword [ebp - 0x28], 0xffffffff
push 4
lea ecx, [ebp - 0xa0]
call fcn.0040a183
push 2
lea ecx, [ebp - 0x130]
call fcn.0040a183
mov dword [ebp - 0x30], 0xeb25
mov dword [ebp - 0x20], 0x96e1580e
mov dword [ebp - 0x18], 0xffffffff
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x1d0]
call fcn.0040a183
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
jmp 0x47abf1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x47abde
mov dword [ebp - 0x1c], ebx
jmp 0x47ac0f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x130]
mov dword [eax + ecx*4], 0xa3bdf78b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x47abfc
mov dword [ebp - 0x1c], ebx
jmp 0x47ac2d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1d0]
mov dword [eax + ecx*4], 0x41993e36
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x47ac1a
cmp dword [ebp - 0x14], ebx
je 0x47ac85
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edi
setle cl
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setg cl
sub ecx, 0x5e7b9e19
jne 0x47ac64
cmp dword [ebp - 0x14], ebx
mov edx, ebx
je 0x47ac66
mov edx, edi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa0]
mov dword [eax], edi
mov ecx, edi
jmp 0x47ac87
mov ecx, ebx
mov esi, dword [ebp - 0x130]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
imul edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esi + 4], ecx
mov eax, dword [ebp - 0x130]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax]
sub eax, dword [esi + 4]
mov edx, dword [ebp - 0x28]
imul edx, eax
mov eax, dword [ebp - 0x30]
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [ebp - 0x14]
sub edx, eax
push 2
pop esi
sub edx, esi
xor ecx, ecx
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0xc], edx
setg cl
sub ecx, dword [eax]
mov eax, dword [ebp - 0x28]
imul eax, ecx
xor edx, edx
cmp eax, 8
setge dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setge cl
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xa0]
mov dword [eax], 0x79b6842a
lea ecx, [ebp - 0x1d0]
call fcn.0040a255
lea ecx, [ebp - 0x130]
call fcn.0040a255
lea ecx, [ebp - 0xa0]
call fcn.0040a255
mov eax, dword [0xaea714]
test al, 1
jne 0x47adda
or eax, edi
mov dword [0xaea714], eax
mov dword [0xaea740], ebx
mov dword [0xaea744], ebx
push ebx
push ebx
call fcn.0040c6e0
mov dword [0xaea740], eax
mov dword [0xaea748], ebx
mov dword [0xaea750], ebx
mov dword [0xaea75c], 0x3f800000
mov dword [ebp - 0xe8], eax
mov dword [0xaea74c], ebx
lea eax, [ebp - 0xe8]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1f8]
push eax
mov ecx, 0xaea748
call fcn.0040c485
mov dword [0xaea754], 7
mov dword [0xaea758], 8
push 0x4e2213
call fcn.004cb80d
pop ecx
push esi
lea ecx, [ebp - 0x110]
call fcn.0040a183
mov dword [ebp - 0x14], 0x9beb0647
mov dword [ebp - 0x30], 0x79041289
mov dword [ebp - 0x28], ebx
jmp 0x47ae0c
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], 0x3185
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jl 0x47adf9
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], edi
jg 0x47ae85
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], 3
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x110]
cmp dword [eax + ecx*4], ebx
jne 0x47ae50
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x110]
cmp dword [eax + ecx*4], ebx
mov ecx, ebx
je 0x47ae52
mov ecx, edi
mov edx, dword [edx + 4]
mov eax, dword [ebp - 0x14]
imul eax, ecx
neg eax
xor ecx, ecx
cmp eax, edx
setge cl
sub ecx, 0x2d7af2c9
xor eax, eax
cmp ecx, edx
setl al
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
mov edx, dword [ebp - 0x38]
jle 0x47ae22
lea ecx, [ebp - 0x110]
call fcn.0040a255
imul eax, dword [ebp - 0x4c], 0x2710
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], 0xec79cf18
mov dword [ebp - 0x28], ebx
jmp 0x47aebd
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xc8], 0x69fdf99f
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x47aeac
mov dword [ebp - 0xc4], 0x17
jmp 0x47aef2
mov dword [ebp - 0x38], 0x543beb71
mov dword [ebp - 0x40], 0x734f0946
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x40], eax
inc dword [ebp - 0xc4]
cmp dword [ebp - 0xc4], 0x1d
je 0x47aecf
lea eax, [ebp - 0x74]
push eax
call fcn.0047c828
mov eax, dword [eax]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x47af79
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x30], 0xec79cf18
mov dword [ebp - 0x28], ebx
jmp 0x47af36
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x11c], 0x69fdf99f
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x47af25
mov dword [ebp - 0x118], 0x17
jmp 0x47af6b
mov dword [ebp - 0x34], 0x543beb71
mov dword [ebp - 0x38], 0x734f0946
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
inc dword [ebp - 0x118]
cmp dword [ebp - 0x118], 0x1d
je 0x47af48
jmp 0x47c809
mov dword [ebp - 0x28], 0x4266
cmp dword [ebp - 0x28], 0x449c
jle 0x47afdc
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], edi
mov ecx, eax
sar edi, cl
mov eax, edi
mov ecx, ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xae9498
call fcn.00409f5c
inc ebx
cmp ebx, 0x62ce
jl 0x47af9d
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x7c8c
push 0
pop ebx
mov edi, dword [ebp - 0x20]
jl 0x47af93
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x3b34
jl 0x47af8e
xor edi, edi
inc edi
push esi
lea ecx, [ebp - 0x19c]
call fcn.0040a183
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x3fb4
jge 0x47b003
mov edx, 0xad78f8
mov ecx, 0xae9498
call fcn.0040c7e1
or dword [ebp - 4], 0xffffffff
jmp 0x47b02f
mov dword [ebp - 0x30], 0x11a3
cmp dword [ebp - 0x30], 0x1378
jle 0x47b078
push ebx
push ebx
push ebx
call dword [0xaec32c]
mov edi, ebx
mov dword [ebp - 0x34], ebx
mov eax, edi
mov ecx, ebx
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xae9498
call fcn.00409f5c
inc ebx
cmp ebx, 0x2786
jl 0x47b04d
inc edi
cmp edi, 0x2796
push 0
pop ebx
jl 0x47b04a
xor edi, edi
inc edi
push 4
lea ecx, [ebp - 0x1e8]
call fcn.0040a183
mov dword [ebp - 4], esi
cmp dword [ebp - 0x30], 0x10be
jge 0x47b0a0
mov edx, 0xad7988
mov ecx, 0xae9498
call fcn.0040c7e1
or dword [ebp - 4], 0xffffffff
jmp 0x47b0cc
mov dword [ebp - 0x3c], 0xb5f7919a
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], ebx
jmp 0x47b0f5
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x19c]
mov dword [eax + ecx*4], 0x6db50520
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x47b0e2
mov dword [ebp - 0x1c], ebx
jmp 0x47b112
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1e8]
mov dword [eax + ecx*4], 0x822e6e7f
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x47b0ff
mov dword [ebp - 0x1c], ebx
jmp 0x47b12e
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x224], 0x76ab
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x47b11d
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47b14f
push ebx
push 0x1494
push ebx
push 0x1053
call dword [fcn.00aec0c4]
dec dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x224]
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax]
lea eax, [ecx - 1]
xor edx, edx
cmp ecx, eax
setne dl
mov dword [ebp - 0x34], edx
lea ecx, [ebp - 0x1e8]
call fcn.0040a255
lea ecx, [ebp - 0x19c]
call fcn.0040a255
mov eax, dword [0xaea714]
test al, 2
jne 0x47b20a
or eax, esi
mov dword [0xaea714], eax
mov dword [0xaea720], ebx
mov dword [0xaea724], ebx
push ebx
push ebx
call fcn.0040c6e0
mov dword [0xaea720], eax
mov dword [0xaea728], ebx
mov dword [0xaea730], ebx
mov dword [0xaea73c], 0x3f800000
mov dword [ebp - 0x124], eax
mov dword [0xaea72c], ebx
lea eax, [ebp - 0x124]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x208]
push eax
mov ecx, 0xaea728
call fcn.0040c485
mov dword [0xaea734], 7
mov dword [0xaea738], 8
push 0x4e220e
call fcn.004cb80d
pop ecx
mov dword [ebp - 0x18], 0x62b3
cmp dword [ebp - 0x18], 0x6341
jle 0x47b2a5
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xaec224]
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], ebx
mov edx, edi
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x38], edx
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x34]
mov eax, edx
xor eax, edi
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xae9498
call fcn.00409f5c
inc edi
cmp edi, 0x14fd
mov edx, dword [ebp - 0x38]
jl 0x47b248
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x4139
push 0
pop ebx
mov edi, dword [ebp - 0x28]
jl 0x47b236
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x4701
jl 0x47b231
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x3a28
jl 0x47b22c
push ebx
push 0x5fe
push ebx
call dword [0xaec0e8]
xor edi, edi
inc edi
mov dword [ebp - 4], 4
cmp dword [ebp - 0x18], 0x6055
jge 0x47b2c4
mov edx, 0xad79d0
mov ecx, 0xae9498
call fcn.0040c7e1
or dword [ebp - 4], 0xffffffff
jmp 0x47b2f0
push 4
lea ecx, [ebp - 0xd4]
call fcn.0040a183
mov dword [ebp - 0x14], 0x1febaeef
mov dword [ebp - 0x40], 0x698
mov dword [ebp - 0x28], ebx
jmp 0x47b323
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xd4]
mov dword [eax + ecx*4], 0x7571
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x47b310
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 3
jg 0x47b429
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], 0xe2294bb4
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x34], ebx
xor ecx, ecx
cmp dword [eax + 0xc], edi
setl cl
xor eax, eax
cmp ecx, 0x71cb
setg al
mov dword [ebp - 0x28], eax
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0xd4]
add eax, dword [edx]
xor ecx, ecx
cmp eax, 0xfffffffd
setge cl
xor eax, eax
cmp ecx, 0x8af066b
setle al
xor ecx, ecx
cmp eax, 0x1bb35b68
setle cl
xor eax, eax
cmp ecx, dword [edx + esi*4]
setge al
mov ecx, dword [edx + edi*4]
sub ecx, eax
mov eax, dword [ebp - 0x34]
imul ecx, dword [edx + eax*4]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
sete dl
imul edx, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0x38]
cmp edx, dword [eax + esi*4]
setg cl
mov eax, dword [ebp - 0x40]
add eax, ecx
mov ecx, 0xfffe
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x14]
jl 0x47b3e6
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], ebx
jmp 0x47b40d
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47b40a
push ebx
call dword [fcn.00aec2ec]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jle 0x47b3fa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
push 1
pop edi
push 2
pop esi
mov eax, dword [ebp - 0x30]
jle 0x47b33f
lea ecx, [ebp - 0xd4]
call fcn.0040a255
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x104], xmm0
mov dword [ebp - 0x28], 0xb26bdde0
mov dword [ebp - 0x3c], 6
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x3c], 0xfffffff9
mov dword [ebp - 0x3c], 0x278fa8f9
mov dword [ebp - 0x3c], 0x9f4ffcf3
push 3
lea ecx, [ebp - 0x1dc]
call fcn.0040a183
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x3c], 0x6a7609fa
mov dword [ebp - 0x3c], 0xffffffff
xor edi, edi
inc edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x18], 0x461f
cmp dword [ebp - 0x18], 0x46b8
jle 0x47b4e7
mov dword [ebp - 0x28], ebx
mov eax, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], 0x3896
mov esi, eax
mov edi, 0x2c9f
mov eax, esi
cdq
push edx
push eax
mov ecx, 0xae9498
call fcn.00409f5c
dec esi
dec edi
jne 0x47b4b7
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
add eax, esi
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x20]
jne 0x47b4b0
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x1abf
jl 0x47b4a4
inc edi
mov dword [ebp - 0x30], 0x7e294b58
mov dword [ebp - 4], 6
cmp dword [ebp - 0x18], 0x43dc
jge 0x47b50d
mov edx, 0xad79f0
mov ecx, 0xae9498
call fcn.0040c7e1
or dword [ebp - 4], 0xffffffff
jmp 0x47b536
mov dword [ebp - 0x28], ebx
jmp 0x47b54e
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1dc]
mov dword [eax + ecx*4], 0xb5486b6
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x47b53b
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47b566
push ebx
push ebx
push ebx
call dword [fcn.00aec2e8]
mov dword [ebp - 0x28], ebx
push 0xfffffffffffffffe
pop esi
jmp 0x47b5d0
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x3c], 0xfb023ed1
movdqa xmm0, xmmword [0xadc280]
movdqu xmmword [ebp - 0x218], xmm0
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xdc], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
lea ecx, [ebp - 0xe4]
call fcn.0040d1d7
mov dword [ebp - 0x3c], esi
lea ecx, [ebp - 0xe4]
cmp dword [ebp - 0x34], ebx
jne 0x47b5d7
inc dword [ebp - 0x30]
call fcn.0040a255
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jge 0x47b56e
jmp 0x47b5dc
call fcn.0040a255
lea ecx, [ebp - 0x1dc]
call fcn.0040a255
lea eax, [ebp - 0x4c]
push eax
call fcn.0047c88a
mov esi, dword [eax]
mov dword [ebp - 0x28], esi
push 3
lea ecx, [ebp - 0x70]
call fcn.0040a183
mov dword [ebp - 0x14], 0x9dada439
mov dword [ebp - 0x18], ebx
jmp 0x47b61b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0x8bbc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x47b60b
mov dword [ebp - 0x14], 2
cmp dword [ebp - 0x14], ebx
jl 0x47b8b3
mov dword [ebp - 0x18], 0xb3e90a62
mov dword [ebp - 0x24], 0xff839e07
mov dword [ebp - 0x1c], 0x5b26
cmp dword [ebp - 0x1c], 0x5cd7
jle 0x47b6e2
push ebx
push 0x852
call dword [0xaec3c0]
mov dword [ebp - 0x18], ebx
mov edx, ebx
mov dword [ebp - 0x20], ebx
mov eax, ebx
mov dword [ebp - 0x24], ebx
mov ecx, ebx
mov dword [ebp - 0x30], ecx
mov esi, eax
and esi, edx
xor esi, dword [ebp - 0x18]
mov eax, esi
or eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x264]
call fcn.00401a48
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47b694
mov eax, dword [eax]
push eax
call fcn.004cb837
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x264]
call fcn.0040a731
mov ecx, dword [ebp - 0x30]
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x16a0
jl 0x47b678
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0xb09
mov edx, dword [ebp - 0x20]
jl 0x47b66c
inc edx
mov dword [ebp - 0x20], edx
cmp edx, 0x712b
jl 0x47b667
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x5167
jl 0x47b662
mov dword [ebp - 0x20], 0x3260039c
mov dword [ebp - 4], 8
cmp dword [ebp - 0x1c], 0x594f
jge 0x47b704
push 0xad7a54
call fcn.004cb837
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47b730
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x18], 2
cmp dword [ebp - 0x18], ebx
jl 0x47b809
push 3
lea ecx, [ebp - 0x1a8]
call fcn.0040a183
mov dword [ebp - 0x34], 0xfffffffa
mov dword [ebp - 0x24], ebx
jmp 0x47b76f
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1a8]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x47b75c
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], ebx
je 0x47b7a3
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x70]
cmp dword [eax + ecx*4], 5
setle dl
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x70]
cmp ecx, dword [eax]
setl dl
cmp edx, dword [ebp - 0x34]
mov ecx, ebx
jge 0x47b7a5
mov ecx, edi
mov eax, dword [ebp - 0x18]
add eax, ecx
je 0x47b7b9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
cmp dword [eax + ecx*4], ebx
mov edx, edi
jne 0x47b7bb
mov edx, ebx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
sub edx, dword [eax + ecx*4]
je 0x47b7d3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
cmp dword [eax + ecx*4], ebx
mov eax, ebx
jne 0x47b7d5
mov eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1a8]
mov dword [eax + 8], esi
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x18]
add eax, esi
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x1a8]
call fcn.0040a255
dec dword [ebp - 0x18]
jns 0x47b743
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0xfffffffe
je 0x47b8ab
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
neg eax
xor edx, edx
cmp eax, dword [esi + 8]
setg dl
mov ecx, dword [ebp - 0x24]
imul ecx, dword [ebp - 0x24]
imul ecx, edx
mov eax, dword [esi + 8]
sub eax, ecx
sub eax, 0x54e60774
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], 2
cmp dword [ebp - 0x18], ebx
jl 0x47b89e
mov dword [ebp - 0x1c], ebx
jmp 0x47b893
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47b890
push 0x19f1
push 0xc27
push ebx
call dword [0xaec0d0]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jle 0x47b876
dec dword [ebp - 0x18]
jns 0x47b871
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x47b819
dec dword [ebp - 0x14]
jmp 0x47b628
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp - 0x28]
cmp dword [ebp - 0x14], 0xfffffff0
jle 0x47b9c7
push 3
lea ecx, [ebp - 0x148]
call fcn.0040a183
mov dword [ebp - 0x30], 0x43d0
cmp dword [ebp - 0x30], 0x45a6
jle 0x47b91d
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x34], ebx
lea eax, [esi + edi]
or eax, ebx
cdq
push edx
push eax
mov ecx, 0xae9498
call fcn.00409f5c
inc ebx
cmp ebx, 0x3427
jl 0x47b8e7
inc esi
cmp esi, 0x5945
push 0
pop ebx
jl 0x47b8e4
inc edi
cmp edi, 0x59d2
jl 0x47b8e2
xor edi, edi
inc edi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x30], 0x4000
jge 0x47b93c
mov edx, 0xad7a90
mov ecx, 0xae9498
call fcn.0040c7e1
or dword [ebp - 4], 0xffffffff
jmp 0x47b968
mov dword [ebp - 0x18], ebx
jmp 0x47b980
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x148]
mov dword [eax + ecx*4], 0xdcd7820e
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x47b96d
mov eax, dword [ebp - 0x148]
mov dword [eax], ebx
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47b99e
push ebx
call dword [fcn.00aec2dc]
mov ecx, dword [ebp - 0x148]
inc dword [ecx]
cmp dword [ecx], 2
jle 0x47b98e
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
lea ecx, [ebp - 0x148]
call fcn.0040a255
dec dword [ebp - 0x14]
jmp 0x47b8b9
lea ecx, [ebp - 0x70]
call fcn.0040a255
mov al, byte [ebp + 0xc]
test al, al
jne 0x47b9de
test esi, esi
jne 0x47c380
lea ecx, [ebp - 0x274]
push ecx
mov dl, al
mov ecx, dword [ebp - 0x4c]
call fcn.0046d8b6
pop ecx
mov esi, eax
lea edi, [ebp - 0x104]
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], 0xebb0
mov dword [ebp - 0x18], 0xffffffff
push 4
lea ecx, [ebp - 0xac]
call fcn.0040a183
push 2
lea ecx, [ebp - 0x13c]
call fcn.0040a183
mov dword [ebp - 0x30], 0xeb25
mov dword [ebp - 0x20], 0x96e1580e
mov dword [ebp - 0x24], 0xffffffff
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x1c4]
call fcn.0040a183
mov dword [ebp - 0x1c], ebx
jmp 0x47ba60
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x47ba4d
mov dword [ebp - 0x1c], ebx
jmp 0x47ba7e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x13c]
mov dword [eax + ecx*4], 0xa3bdf78b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x47ba6b
mov dword [ebp - 0x1c], ebx
jmp 0x47ba9c
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c4]
mov dword [eax + ecx*4], 0x41993e36
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x47ba89
cmp dword [ebp - 0x14], ebx
je 0x47baf4
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edi
setle cl
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setg cl
sub ecx, 0x5e7b9e19
jne 0x47bad3
cmp dword [ebp - 0x14], ebx
mov edx, ebx
je 0x47bad5
mov edx, edi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xac]
mov dword [eax], edi
mov ecx, edi
jmp 0x47baf6
mov ecx, ebx
mov esi, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
imul edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esi + 4], ecx
mov eax, dword [ebp - 0x13c]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
sub eax, dword [esi + 4]
mov edx, dword [ebp - 0x18]
imul edx, eax
mov eax, dword [ebp - 0x30]
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [ebp - 0x14]
sub edx, eax
push 2
pop esi
sub edx, esi
xor ecx, ecx
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0xc], edx
setg cl
sub ecx, dword [eax]
mov eax, dword [ebp - 0x18]
imul eax, ecx
xor edx, edx
cmp eax, 8
setge dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xac]
mov dword [eax], 0x79b6842a
lea ecx, [ebp - 0x1c4]
call fcn.0040a255
lea ecx, [ebp - 0x13c]
call fcn.0040a255
lea ecx, [ebp - 0xac]
call fcn.0040a255
cmp byte [ebp + 0xc], 0
je 0x47bbe7
mov ecx, dword [ebp - 0xfc]
test ecx, ecx
je 0x47bbe7
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x47c380
cmp dword [ebp - 0x104], eax
jle 0x47c380
mov dword [ebp - 0x24], 0x278c007c
mov dword [ebp - 0x38], 0x42c60eda
mov dword [ebp - 0x30], 0xf1d65f4e
mov dword [ebp - 0x30], 0xa7b09f59
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x34], 0x7bc8b421
push esi
lea ecx, [ebp - 0x178]
call fcn.0040a183
push esi
lea ecx, [ebp - 0x154]
call fcn.0040a183
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], ebx
jmp 0x47bc62
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x178]
mov dword [eax + ecx*4], 0x2fc257a1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x47bc4f
mov dword [ebp - 0x1c], ebx
jmp 0x47bc7b
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x154]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x47bc6c
mov dword [ebp - 0x1c], ebx
jmp 0x47bc93
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x48], 0x6ffa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x47bc85
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x20]
cmp eax, ecx
mov edx, edi
cmovle edx, ebx
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x48]
cmp ecx, eax
mov eax, edi
cmovl eax, ebx
add eax, edx
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0x7bff
jg 0x47bcce
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x30]
jmp 0x47bcd0
mov eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x34], edi
jne 0x47bcde
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
sub edx, eax
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x24]
sub eax, ecx
mov ecx, 0x8af769bf
cmp ecx, eax
sbb eax, eax
inc eax
cmp edi, eax
sbb ecx, ecx
mov eax, dword [ebp - 0x154]
sub ecx, 0x1353
add ecx, dword [eax + 4]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x178]
mov dword [eax], ecx
lea ecx, [ebp - 0x154]
call fcn.0040a255
lea ecx, [ebp - 0x178]
call fcn.0040a255
push 4
lea ecx, [ebp - 0x88]
call fcn.0040a183
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
jmp 0x47bd65
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x47bd56
push 3
pop eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jl 0x47bdc0
mov dword [ebp - 0x20], 0x1265ab3e
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jl 0x47bdbb
mov dword [ebp - 0x18], 0xb3921ded
mov dword [ebp - 0x18], ebx
jmp 0x47bdb1
mov dword [ebp - 0x34], esi
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47bdae
push ebx
call dword [0xaec2c0]
push 3
pop eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jle 0x47bd98
dec dword [ebp - 0x20]
jns 0x47bd8c
dec dword [ebp - 0x1c]
jns 0x47bd76
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jl 0x47bef9
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x40], 6
mov dword [ebp - 0x18], ebx
jmp 0x47bee4
mov dword [ebp - 0x24], 0xdd3e
mov dword [ebp - 0x30], 0xb839
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x24]
add eax, dword [ecx + edx*4]
cmp eax, edi
jbe 0x47be05
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edi
setl cl
add ecx, 4
xor eax, eax
cmp ecx, 0x1ffbe626
setg al
imul ecx, eax, 0xf8de
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x14], ebx
push 3
pop eax
jmp 0x47bed8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x34], 0xfffffffb
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], eax
jg 0x47bed5
mov edi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x88]
cmp dword [eax + ecx*4], 0xc683
setg dl
mov ecx, dword [ebp - 0x30]
add ecx, edx
mov eax, dword [ebp - 0x88]
cmp ecx, dword [eax + esi*4]
jle 0x47be93
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
cmp dword [edi + 0xc], ebx
je 0x47be9e
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov edx, 0xa37ead93
mov eax, dword [ebp - 0x88]
sub edx, dword [eax + ecx*4]
mov dword [ebp - 0x34], edx
inc dword [ebp - 0x24]
push 3
pop eax
cmp dword [ebp - 0x24], eax
jle 0x47be68
xor edi, edi
inc edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jle 0x47be50
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jle 0x47bdde
dec dword [ebp - 0x1c]
jns 0x47bdcc
push 2
pop esi
lea ecx, [ebp - 0x88]
call fcn.0040a255
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x34], 0xfffffffa
push esi
lea ecx, [ebp - 0x1f4]
call fcn.0040a183
mov dword [ebp - 0x24], ebx
jmp 0x47bf2d
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x7c], 0x37ad4351
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x47bf1f
mov dword [ebp - 0x24], ebx
jmp 0x47bf47
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1f4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x47bf37
mov dword [ebp - 0x20], ebx
jmp 0x47c022
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x14], 0x12
jmp 0x47bfb4
mov dword [ebp - 0x1c], 0xfffffffb
mov dword [ebp - 0x1c], ebx
jmp 0x47bfac
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x24], ebx
jmp 0x47bfa4
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x47bf9c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7c], 8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x47bf8e
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x47bf82
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jle 0x47bf76
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe9
jl 0x47bf6a
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
test eax, eax
jne 0x47bfcc
cmp dword [ebp - 0x7c], ebx
mov ecx, ebx
je 0x47bfce
mov ecx, edi
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], 0xab1d6a56
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
sub ecx, eax
add ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
neg eax
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [ebp - 0x78]
imul eax, ecx, 0xfffa
sub eax, 0x40f97a42
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x34], 0xfffffffb
jg 0x47c01c
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x34], edi
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff3
jge 0x47bf54
lea ecx, [ebp - 0x1f4]
call fcn.0040a255
cmp dword [ebp - 0x100], 0
je 0x47c380
mov dword [ebp - 0x14], 0xff23b1a9
push edi
lea ecx, [ebp - 0x94]
call fcn.0040a183
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], 0xe82b
mov dword [ebp - 0x34], 0x4865
mov dword [ebp - 0x3c], 0xfff8
mov dword [ebp - 0x20], ebx
jmp 0x47c08a
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x94]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x47c07b
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [ebp - 0x14]
xor eax, eax
cmp ecx, 0xab89
setge al
imul eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
je 0x47c22b
mov dword [ebp - 0x1c], edi
push esi
lea ecx, [ebp - 0x160]
call fcn.0040a183
push edi
lea ecx, [ebp - 0x190]
call fcn.0040a183
mov dword [ebp - 0x24], ebx
jmp 0x47c112
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x160]
mov dword [eax + ecx*4], 0xde2
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x47c0ff
mov dword [ebp - 0x24], ebx
jmp 0x47c12b
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x190]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x47c11c
cmp dword [ebp - 0x14], ebx
jne 0x47c1f7
mov esi, dword [ebp - 0x160]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xfffffffc
setle cl
mov dword [esi + 4], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp dword [esi + 4], eax
setne cl
mov eax, dword [ebp - 0x1c]
add eax, ecx
je 0x47c165
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp dword [esi + 4], ebx
setne dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov eax, dword [ebp - 0x94]
cmp ecx, dword [eax]
setl dl
xor eax, eax
cmp edx, 0xfffffffd
setne al
cmp eax, dword [ebp - 0x1c]
jl 0x47c198
cmp dword [ebp - 0x20], ebx
mov eax, edi
jne 0x47c19a
mov eax, ebx
cmp eax, 0xfff6
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, 0xfffffff7
setne cl
sub ecx, 7
neg ecx
sbb ecx, ecx
inc ecx
xor edx, edx
mov eax, dword [ebp - 0x94]
cmp ecx, dword [eax]
setne dl
mov esi, dword [eax]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setl cl
mov edx, dword [ebp - 0x1c]
sub edx, ecx
neg edx
sbb edx, edx
inc edx
xor eax, eax
cmp edx, esi
setle al
xor ecx, ecx
cmp esi, eax
setl cl
mov eax, dword [ebp - 0x94]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x18], ebx
jne 0x47c209
cmp dword [ebp - 0x1c], ebx
mov ecx, ebx
je 0x47c20b
mov ecx, edi
mov eax, dword [ebp - 0x190]
mov dword [eax], ecx
lea ecx, [ebp - 0x190]
call fcn.0040a255
lea ecx, [ebp - 0x160]
call fcn.0040a255
jmp 0x47c239
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x34], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.0040a255
mov ecx, dword [ebp - 0x100]
call fcn.0047a70d
mov esi, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0x76e5b14f
mov dword [ebp - 0x24], 0x51f1e283
mov dword [ebp - 0x20], ebx
jmp 0x47c27c
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x58], 0x589fe57f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x47c26e
cmp dword [ebp - 0x18], ebx
je 0x47c2cf
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edx
setge cl
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x58], eax
je 0x47c2b0
cmp dword [ebp - 0x14], ebx
mov ecx, edi
jne 0x47c2b2
mov ecx, ebx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edx
setle cl
mov eax, edi
sub eax, ecx
je 0x47c2cf
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x58], ebx
je 0x47c2f0
mov dword [ebp - 0x34], 0x78ed
mov dword [ebp - 0x34], 0x1e13ca4d
jmp 0x47c375
push 3
lea ecx, [ebp - 0x16c]
call fcn.0040a183
mov dword [ebp - 0x40], 0x6b786ae2
mov dword [ebp - 0x20], ebx
jmp 0x47c31c
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x16c]
mov dword [eax + ecx*4], 0xc46983c1
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x47c309
mov dword [ebp - 0x24], ebx
jmp 0x47c33b
cmp dword [ebp - 0x24], ebx
jle 0x47c327
lea eax, [ebp - 0x4c]
push eax
call fcn.0047c88a
mov dword [eax], esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0xfffffff6
mov dword [ebp - 0x3c], 0xb060
mov dword [ebp - 0x20], 0x6d39c7c6
mov dword [ebp - 0x24], 0x4142b919
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x34], 0x5146
cmp dword [ebp - 0x34], 0x525b
jle 0x47c450
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov dword [ebp - 0x38], ebx
lea ecx, [esi + eax]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], 0x4c7d
mov esi, dword [ebp - 0x14]
mov eax, esi
and eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x24c]
call fcn.00401a48
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47c401
mov eax, dword [eax]
push eax
call fcn.004cb837
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x24c]
call fcn.0040a731
mov ecx, dword [ebp - 0x40]
dec ecx
mov dword [ebp - 0x40], ecx
dec dword [ebp - 0x1c]
jne 0x47c3e5
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x1f61
mov eax, dword [ebp - 0x20]
jl 0x47c3d5
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x580b
jl 0x47c3d0
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x7258
jl 0x47c3cb
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x34], 0x4fbd
jge 0x47c46b
push 0xad7aec
call fcn.004cb837
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47c494
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x20], ebx
jmp 0x47c4aa
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x44], 0x8a277ebd
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x47c49c
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x18]
jge 0x47c4c4
cmp dword [ebp - 0x3c], ebx
mov ecx, edi
jne 0x47c4c6
mov ecx, ebx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x24]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x47c507
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x30], ebx
je 0x47c532
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], edi
cmp dword [ebp - 0x20], ebx
jne 0x47c52a
cmp dword [ebp - 0x44], ebx
mov eax, ebx
je 0x47c52c
mov eax, edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp dword [ebp - 0x3c], eax
setne cl
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x104]
call fcn.0047a21a
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x38], 0x807383cc
mov dword [ebp - 0x34], 0x20920a6f
mov dword [ebp - 0x40], 0x90ce96f8
push 4
lea ecx, [ebp - 0x184]
call fcn.0040a183
mov dword [ebp - 0x24], ebx
jmp 0x47c5ad
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x50], 0x889e
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x47c59f
mov dword [ebp - 0x24], ebx
jmp 0x47c5ca
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x184]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x47c5b7
mov dword [ebp - 0x14], ebx
jmp 0x47c611
mov dword [ebp - 0x3c], 0xb6748f69
mov dword [ebp - 0x20], ebx
jmp 0x47c5ee
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x234], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x47c5e1
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47c605
push ebx
push ebx
call dword [0xaec274]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x228], eax
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffa
jne 0x47c5d5
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x14]
add eax, 0xd890fc51
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x14]
je 0x47c644
cmp dword [ebp - 0x40], ebx
je 0x47c644
mov dword [ebp - 0x50], edi
jmp 0x47c64a
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x184]
mov dword [eax + 8], 0x11550dd
lea ecx, [ebp - 0x184]
call fcn.0040a255
cmp dword [ebp - 0x120], 0
jne 0x47c77b
test esi, esi
je 0x47c77b
mov edx, dword [ebp - 0x54]
mov ecx, esi
call fcn.0047aa62
mov esi, eax
mov dword [ebp - 0xf4], esi
push 9
pop eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x20], 0xac70c309
mov dword [ebp - 0x28], 0xb0d193e0
mov dword [ebp - 0x1b0], 0xffffffff
mov dword [ebp - 0x20], 0xfffffffe
cmp dword [ebp - 0x20], 0x1d
jle 0x47c770
mov eax, 0x45d811f0
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xb0], 0xffffffec
cmp dword [ebp - 0xb0], 0x17
jle 0x47c763
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], ebx
jmp 0x47c749
mov dword [ebp - 0x28], 0x1d
jmp 0x47c740
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x47c73d
push 0x763
call dword [0xaec428]
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffef
jge 0x47c729
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jle 0x47c720
inc dword [ebp - 0xb0]
cmp dword [ebp - 0xb0], 0x17
jg 0x47c712
mov eax, 0x45d811f0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1d
jg 0x47c6e7
lea eax, [ebp - 0x74]
push eax
call fcn.0047c828
mov dword [eax], esi
mov dword [ebp - 0x24], ebx
jmp 0x47c78e
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x64], 0xffffffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x47c780
mov dword [ebp - 0x24], ebx
jmp 0x47c7a6
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xd8], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x47c799
mov dword [ebp - 0x5c], ebx
jmp 0x47c7d5
mov dword [ebp - 0x20], ebx
jmp 0x47c7c6
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x204], 0xdd688769
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x47c7b5
inc dword [ebp - 0x1fc]
dec dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], 0xfffffffe
jle 0x47c7b0
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x60], ebx
je 0x47c7ea
cmp dword [ebp - 0x5c], ebx
je 0x47c7ea
mov ebx, edi
xor ecx, ecx
cmp ebx, edi
setg cl
mov eax, dword [ebp - 0x5c]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x64]
add eax, edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp + 8]
mov edi, eax
lea esi, [ebp - 0xf4]
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