Function at 0x46aa77
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4c9d9b
call fcn.004c90c8
sub esp, 0xdc8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x68], dl
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x4c], 0x13dd33a4
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x50c]
call fcn.004546da
mov dword [ebp - 0x28], edi
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46aad3
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50c]
mov dword [eax + ecx*4], 0xfb5a5efa
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46aab9
xor eax, eax
mov dword [ebp - 0x4c], 0xffffffef
jmp 0x46ab30
cmp dword [ebp - 0x4c], eax
je 0x46aaf5
mov eax, dword [ebp - 0x50c]
mov eax, dword [eax]
neg eax
je 0x46aaf3
mov ecx, edi
xor eax, eax
jmp 0x46aaf7
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], eax
je 0x46ab09
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x2c], eax
jne 0x46ab36
jmp 0x46ab2d
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], eax
jl 0x46ab2d
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], 0
je 0x46ab28
push 0x17df
push eax
call dword [0xac7310]
xor eax, eax
dec dword [ebp - 0x28]
jns 0x46ab11
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xfffffffd
jle 0x46aadc
lea ecx, [ebp - 0x50c]
call fcn.004547ac
mov dword [ebp - 0x34], 0x13dd33a4
push edi
lea ecx, [ebp - 0x4e8]
call fcn.004546da
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x28], 0x53b26bdd
mov dword [ebp - 0x40], 0xf545ee28
push 2
lea ecx, [ebp - 0x5f0]
call fcn.004546da
mov dword [ebp - 0x30], 0xfffc
mov dword [ebp - 0x18], 0
jmp 0x46ab91
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5f0]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46ab82
mov dword [ebp - 0x28], 0
mov esi, 0xffff
cmp dword [ebp - 0x28], 6
je 0x46ad40
lea eax, [ebp - 0x764]
lea ecx, [ebp - 0x754]
push 9
pop ebx
mov dword [ebp - 0x24], 0xcfb6318d
mov dword [ebp - 0x4c], esi
movdqa xmm0, xmmword [0xab7c00]
movdqu xmmword [ebp - 0x764], xmm0
push ecx
push ecx
push eax
lea ecx, [ebp - 0xb0c]
call fcn.00454786
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x46ac12
mov dword [ebp - 0x2c], 6
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], 0
je 0x46ac0a
push eax
push 0x20a1
push eax
call dword [fcn.00ac70ac]
xor eax, eax
cmp dword [ebp - 0x2c], eax
jne 0x46ac18
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe6
jge 0x46abeb
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x18
jne 0x46ad1c
mov esi, dword [ebp - 0x5f0]
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], 0xded1456b
mov dword [ebp - 0x48], 0xe77da19
push 4
lea ecx, [ebp - 0x924]
call fcn.004546da
mov dword [ebp - 0x18], 0
jmp 0x46ac65
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x924]
mov dword [eax + ecx*4], 0x6e82a74
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x46ac52
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, 0xb88c
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
cmp ecx, 0x2ef7
setg dl
mov eax, dword [ebp - 0x40]
xor ebx, ebx
cmp eax, edx
setg bl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, ebx
setle cl
mov dword [esi + 4], ecx
mov dword [ebp - 0x4c], 0
jmp 0x46acf7
mov dword [ebp - 0x48], 0x2295
mov dword [ebp - 0x18], 0
jmp 0x46aceb
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb4c], 0x4b58fe4d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46acda
inc dword [ebp - 0x30]
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edi
jle 0x46acca
lea ecx, [ebp - 0x924]
call fcn.004547ac
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x18
push 9
pop ebx
je 0x46ac2b
mov esi, 0xffff
lea ecx, [ebp - 0xb0c]
call fcn.004547ac
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 6
lea eax, [ebp - 0x764]
lea ecx, [ebp - 0x754]
jne 0x46abbc
lea ecx, [ebp - 0x5f0]
call fcn.004547ac
mov dword [ebp - 0x18], 0
jmp 0x46ad67
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4e8]
mov dword [eax + ecx*4], 0xfb5a5efa
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46ad54
push edi
lea ecx, [ebp - 0x25c]
call fcn.004546da
mov dword [ebp - 0x4c], 4
mov dword [ebp - 0x48], 5
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], edi
jge 0x46ada6
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xc4], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x46ad94
mov dword [ebp - 0x24], 0
jmp 0x46adbe
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x25c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x46adaf
mov edx, dword [ebp - 0x25c]
and dword [edx], 0
mov eax, dword [edx]
mov ecx, dword [ebp + eax*4 - 0xc4]
mov edx, dword [ebp - 0x25c]
mov eax, dword [edx]
mov dword [ebp + eax*4 - 0xc4], ecx
dec dword [edx]
jns 0x46adcc
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x46ae71
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x44], 0xfffffffa
mov dword [ebp - 0x28], 0x817d1dc6
mov dword [ebp - 0x2c], edi
mov edx, dword [ebp - 0x28]
imul edx, dword [ebp - 0x28]
add edx, edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x660
setg al
mov ecx, dword [ebp - 0x28]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x28]
test ecx, ecx
jne 0x46ae3c
mov eax, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x44], edi
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
sub ecx, eax
cmp ecx, dword [ebp - 0xc4]
jne 0x46ae58
cmp dword [ebp - 0x4c], 0
jne 0x46ae5b
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x25c]
mov dword [eax], edi
mov dword [ebp - 0x44], edi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x4c]
jns 0x46adf2
lea ecx, [ebp - 0x25c]
call fcn.004547ac
mov dword [ebp - 0x34], 0xffffffef
push 3
pop esi
mov ebx, 0xfffb
cmp dword [ebp - 0x34], 0xfffffffd
jg 0x46b3ff
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x46aeb0
mov eax, dword [ebp - 0x4e8]
mov eax, dword [eax]
neg eax
je 0x46aeae
mov ecx, edi
xor eax, eax
jmp 0x46aeb2
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], eax
je 0x46b0d3
mov dword [ebp - 0x38], esi
movdqa xmm0, xmmword [0xab7bc0]
movdqu xmmword [ebp - 0xa1c], xmm0
lea ecx, [ebp - 0xa1c]
lea eax, [ebp - 0xa0c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x1a0]
call fcn.00454786
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x2c], 5
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], esi
je 0x46b0b3
mov dword [ebp - 0x58], 0xe1879501
mov dword [ebp - 0x28], 0xfffffff9
mov dword [ebp - 0x4c], 0xf191
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], esi
jg 0x46b052
mov ecx, dword [ebp - 0x1a0]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], 0xfbd6c3f0
mov dword [ebp - 0x44], 0x4486cae8
mov dword [ebp - 0x44], 0xfffffffc
mov dword [ebp - 0x44], 0xcfadbac
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jg 0x46afbb
jmp 0x46af59
xor eax, eax
mov dword [ebp - 0x44], 6
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], 0
je 0x46af75
push eax
push 0x2106
call dword [0xac73c0]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x1c]
je 0x46af8e
mov eax, dword [ebp - 0x1c]
add eax, 0x31b4f528
je 0x46af8e
mov ebx, edi
jmp 0x46af90
xor ebx, ebx
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x1a0]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
sub eax, ebx
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x1c]
push 3
pop esi
cmp dword [ebp - 0x1c], esi
jle 0x46af57
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 4]
xor edx, edx
mov eax, dword [ebp - 0x1a0]
cmp ecx, dword [eax]
setne dl
add edx, 0x3fa9a18
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0x4153
jge 0x46afe0
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x1a0]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x58]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x2c], edx
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], esi
push ebx
pop eax
mov ecx, dword [ebp - 0x40]
jle 0x46af31
xor eax, eax
mov dword [ebp - 0x28], esi
cmp dword [ebp - 0x28], eax
jl 0x46b0a2
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], 0
je 0x46b06e
push eax
push eax
push eax
call dword [section..idata]
xor eax, eax
mov dword [ebp - 0x58], esi
cmp dword [ebp - 0x58], eax
jl 0x46b09d
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], esi
jg 0x46b098
xor ebx, ebx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1a0]
cmp dword [eax + ecx*4], ebx
jne 0x46b096
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], esi
jle 0x46b080
xor eax, eax
dec dword [ebp - 0x58]
jns 0x46b076
dec dword [ebp - 0x28]
jns 0x46b05a
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], esi
jne 0x46af07
mov ebx, 0xfffb
lea ecx, [ebp - 0x1a0]
call fcn.004547ac
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x2c], 0
jne 0x46b3ff
inc dword [ebp - 0x34]
jmp 0x46ae8b
mov dword [ebp - 0x30], 0x63f9
mov dword [ebp - 0x28], 0xc781ced8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0xe9c96c79
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x30], eax
jne 0x46b126
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x44], eax
xor eax, eax
cmp dword [ebp - 0x44], eax
mov ecx, eax
je 0x46b128
mov ecx, edi
mov eax, dword [ebp - 0x18]
add eax, ecx
cmp eax, edi
jne 0x46b134
mov eax, dword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], al
je 0x46b14c
push eax
push eax
push eax
call dword [fcn.00ac723c]
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], eax
jl 0x46b0cb
mov byte [ebp - 0x11], al
push 2
lea ecx, [ebp - 0x93c]
call fcn.004546da
mov dword [ebp - 0x18], 0x622ba394
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x46b195
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x93c]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46b17a
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x46b1ca
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], 0
je 0x46b1ae
push eax
push eax
push eax
call dword [fcn.00ac7014]
xor eax, eax
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], 0
je 0x46b1c7
push eax
push 0xa35
push eax
push eax
call dword [fcn.00ac72c4]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x46b19a
lea ecx, [ebp - 0x93c]
call fcn.004547ac
cmp byte [ebp - 0x11], 0
je 0x46b3f5
mov dword [ebp - 0x4c], 9
mov dword [ebp - 0x44], 0x43c4ab27
mov dword [ebp - 0x40], 0x3402
cmp dword [ebp - 0x40], 0x347e
jle 0x46b270
xor edx, edx
mov dword [ebp - 0x18], edx
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x44], ecx
xor ebx, ebx
mov eax, esi
sar eax, cl
and eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xc5c]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.004545ba
push eax
call fcn.004b3bf7
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xc5c]
call fcn.00454ab6
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x33a9
mov edx, dword [ebp - 0x18]
jl 0x46b210
inc esi
cmp esi, 0x4d9
jl 0x46b209
inc edx
mov dword [ebp - 0x18], edx
cmp edx, 0x196c
jl 0x46b207
push 3
pop esi
mov ebx, 0xfffb
mov dword [ebp - 0x38], 0xfffffff6
and dword [ebp - 4], 0
cmp dword [ebp - 0x40], 0x3245
jge 0x46b28f
push 0xab2744
call fcn.004b3bf7
pop ecx
or dword [ebp - 4], 0xffffffff
push 9
pop ecx
jmp 0x46b2c4
xor eax, eax
mov dword [ebp - 0x2c], 0x6bd085c9
mov dword [ebp - 0x44], 0xc4f27d27
mov dword [ebp - 0x30], 0x95031536
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x48], 8
mov dword [ebp - 0x48], 0x2a26f3f1
mov dword [ebp - 0x24], 0x39ecf4a
mov dword [ebp - 0x48], 0xc1d6b3bf
mov dword [ebp - 0x48], 0x7d0b0a35
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x50], 0x6fd5d705
mov dword [ebp - 0x40], 0x4ccfd66c
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x30], 0xbdae
mov dword [ebp - 0x1c], 0x6e149f7f
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x46b35c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x870], 0x7853
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x46b344
xor eax, eax
cmp dword [ebp - 0x4c], eax
jne 0x46b37d
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x30]
xor eax, eax
cmp dword [ebp - 0x50], eax
je 0x46b37f
mov eax, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x868]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0
je 0x46b3a3
mov eax, dword [ebp - 0x86c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xfffffff8
setle cl
cmp ebx, ecx
sbb eax, eax
inc eax
imul eax, eax, 7
mov ecx, dword [ebp - 0x24]
sub ecx, eax
xor eax, eax
cmp ecx, 0x3772
setl al
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, 0xb1aa
setg cl
mov dword [ebp - 0x38], ecx
push 0x17df
xor ebx, ebx
push ebx
call dword [0xac7310]
mov ebx, 0xfffb
dec dword [ebp - 0x28]
xor eax, eax
jmp 0x46b14f
lea ecx, [ebp - 0x4e8]
call fcn.004547ac
mov dword [ebp - 0x34], 0x90f1d898
mov dword [ebp - 0x2c], 0x7b24
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x18], 0x9ff4
mov dword [ebp - 0x44], 0x2f82966b
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x3c], 0x18177c4
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x46b455
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x680], 4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46b43d
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], edi
jge 0x46b475
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xcc], 0x7c4e
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x46b45d
xor eax, eax
mov dword [ebp - 0x20], eax
push 2
pop ebx
jmp 0x46b48e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x894], 0x73a1
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x46b47d
cmp dword [ebp - 0xcc], 0xfffffffa
sbb eax, eax
neg eax
cmp dword [ebp - 0x2c], eax
jne 0x46b4ad
xor eax, eax
cmp dword [ebp - 0x894], eax
je 0x46b4af
mov eax, edi
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp - 0xcc]
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x678]
sub ecx, eax
push 9
pop eax
cmp eax, ecx
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x44]
add ecx, eax
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setne dl
imul edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x28]
cmp edx, edi
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp eax, ecx
setl dl
cmp edx, 0xbe4f
jge 0x46b517
mov eax, dword [ebp - 0x67c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp ecx, eax
setl dl
sub edx, 0xeebcb174
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x34]
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x1c], 0x2e91a049
mov dword [ebp - 0x44], 0x8e7ea1b1
mov dword [ebp - 0x1c], 0
jmp 0x46b64e
push edi
lea ecx, [ebp - 0x828]
call fcn.004546da
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x2c], 0x57994279
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46b5ad
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x828]
mov dword [eax + ecx*4], 0x124f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46b593
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jg 0x46b640
jmp 0x46b5bd
xor eax, eax
mov dword [ebp - 0x2c], 0x50c85761
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x18], eax
jmp 0x46b5dd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x96c], 0x228d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x46b5cc
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x960]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x960]
mov eax, dword [ebp - 0x960]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
mov ecx, edi
sub ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, edi
setle cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
xor eax, eax
cmp dword [ebp - 0x30], eax
jne 0x46b640
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], eax
jle 0x46b5bb
lea ecx, [ebp - 0x828]
call fcn.004547ac
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jge 0x46b573
push esi
lea ecx, [ebp - 0x438]
call fcn.004546da
mov dword [ebp - 0x44], 0x4b2ab76d
mov dword [ebp - 0x28], 0x61a6
cmp dword [ebp - 0x28], 0x6286
jle 0x46b71b
xor eax, eax
push eax
push eax
push eax
call dword [0xac730c]
xor eax, eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x30], eax
xor esi, esi
mov dword [ebp - 0x34], esi
xor ebx, ebx
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0x7ef8
mov esi, dword [ebp - 0x18]
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xb6c]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.004545ba
push eax
call fcn.004b3bf7
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xb6c]
call fcn.00454ab6
mov eax, dword [ebp - 0x44]
dec eax
mov dword [ebp - 0x44], eax
dec dword [ebp - 0x40]
jne 0x46b6ad
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x6d2
mov eax, dword [ebp - 0x30]
jl 0x46b69b
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x5afb
jl 0x46b694
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x1489
jl 0x46b68f
push 3
pop esi
push 2
pop ebx
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x5f4c
jge 0x46b739
push 0xab2770
call fcn.004b3bf7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x46b763
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x46b787
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x438]
mov dword [eax + ecx*4], 0xecba
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x46b76d
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 4
jge 0x46b7a9
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xa9c], 0x246
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x46b790
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x438]
mov ecx, dword [ebp - 0x44]
add ecx, dword [eax + 4]
xor ebx, ebx
cmp ecx, 0xefa2
setle bl
mov eax, dword [ebp - 0xa98]
xor edx, edx
cmp ebx, eax
setg dl
mov ecx, dword [ebp - 0xa98]
imul ecx, edx
xor edx, edx
mov eax, dword [ebp - 0x438]
cmp dword [eax], ecx
setle dl
mov dword [ebp - 0x2c], edx
lea ecx, [ebp - 0x438]
call fcn.004547ac
mov dword [ebp - 0x34], 0x13dd33a4
push esi
lea ecx, [ebp - 0x9b0]
call fcn.004546da
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x44], 0xfffffff9
mov dword [ebp - 0x2c], 0x1cc0e426
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x46b83c
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x9b0]
mov dword [eax + ecx*4], 0x313dd33a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46b822
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 4
jge 0x46b85c
xor ebx, ebx
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x154], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x46b847
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x46b87e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x8a8], 9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x46b865
xor eax, eax
mov dword [ebp - 0x148], 2
cmp dword [ebp - 0x148], eax
jl 0x46b926
jmp 0x46b898
xor eax, eax
mov dword [ebp - 0x2c], 0xfffa
mov dword [ebp - 0x18], eax
jmp 0x46b8b1
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2fc], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46b8a4
mov eax, dword [ebp - 0x148]
mov eax, dword [ebp - 0x148]
mov eax, dword [ebp - 0x148]
mov eax, dword [ebp - 0x14c]
add eax, 0x8c10
mov ecx, 0xfffb
cmp ecx, eax
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14c]
xor ebx, ebx
mov dword [ebp - 0x2fc], ebx
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x148]
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x8a8], eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x148]
jns 0x46b896
lea ecx, [ebp - 0x9b0]
call fcn.004547ac
push edi
lea ecx, [ebp - 0x518]
call fcn.004546da
push 2
lea ecx, [ebp - 0x420]
call fcn.004546da
mov dword [ebp - 0x28], 0x7ccc
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x18], 0
jmp 0x46b970
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x420]
mov dword [eax + ecx*4], 0xd4e06482
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46b95d
mov eax, dword [ebp - 0x420]
mov dword [eax], 0x12
push edi
lea ecx, [ebp - 0x500]
call fcn.004546da
mov dword [ebp - 0x34], 0x6d4f2887
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46b9b9
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x500]
mov dword [eax + ecx*4], 0xe446df37
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46b99f
xor eax, eax
mov dword [ebp - 0x34], eax
jmp 0x46ba34
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x46b9de
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x408], 0xba07e4fc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x46b9c6
xor eax, eax
mov dword [ebp - 0x404], eax
cmp dword [ebp - 0x404], eax
jl 0x46ba31
mov dword [ebp - 0x18], 0x12df3d37
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x46ba16
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46ba11
push 0x1026
call dword [0xac710c]
xor eax, eax
dec dword [ebp - 0x18]
jns 0x46b9fb
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46ba29
push eax
push eax
call dword [0xac72e0]
xor eax, eax
dec dword [ebp - 0x404]
jns 0x46b9ec
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], eax
jle 0x46b9be
lea ecx, [ebp - 0x500]
cmp dword [ebp - 0x28], eax
call fcn.004547ac
mov eax, dword [ebp - 0x420]
dec dword [eax]
cmp dword [eax], 0xc
jge 0x46b982
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], edi
jg 0x46bb3c
mov dword [ebp - 0x18], 0xfffffffc
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], eax
jl 0x46bb34
mov dword [ebp - 0x40], 0xf17
cmp dword [ebp - 0x40], 0xf66
jle 0x46badf
mov esi, eax
mov ecx, eax
mov dword [ebp - 0x44], ecx
xor ebx, ebx
mov eax, esi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xc8c]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.004545ba
push eax
call fcn.004b3bf7
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xc8c]
call fcn.00454ab6
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x3a52
jl 0x46ba92
inc esi
cmp esi, 0x4b68
push 0
pop eax
jl 0x46ba8b
push 3
pop esi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], 4
cmp dword [ebp - 0x40], 0xee3
jge 0x46bafd
push 0xab27a4
call fcn.004b3bf7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x46bb27
mov eax, dword [ebp - 0x18]
dec dword [ebp - 0x18]
xor eax, eax
jmp 0x46ba70
inc dword [ebp - 0x28]
jmp 0x46ba5d
lea ecx, [ebp - 0x420]
call fcn.004547ac
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x28], 0x53b26bdd
mov dword [ebp - 0x40], 0xf545ee28
push 2
lea ecx, [ebp - 0x608]
call fcn.004546da
mov dword [ebp - 0x30], 0xfffc
mov dword [ebp - 0x18], 0
jmp 0x46bb84
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x608]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46bb75
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x28], 6
je 0x46bd2e
lea eax, [ebp - 0x744]
lea ecx, [ebp - 0x734]
mov dword [ebp - 0x24], 0xcfb6318d
mov dword [ebp - 0x4c], 0xffff
movdqa xmm0, xmmword [0xab7c00]
movdqu xmmword [ebp - 0x744], xmm0
push ecx
push ecx
push eax
lea ecx, [ebp - 0xaf4]
call fcn.00454786
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x46bc01
mov dword [ebp - 0x2c], 6
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46bbf9
push eax
push 0x20a1
push eax
call dword [fcn.00ac70ac]
xor eax, eax
cmp dword [ebp - 0x2c], eax
jne 0x46bc07
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe6
jge 0x46bbda
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x18
jne 0x46bd07
mov esi, dword [ebp - 0x608]
mov dword [ebp - 0x44], 9
mov dword [ebp - 0x48], 0xded1456b
mov dword [ebp - 0x48], 0xe77da19
push 4
lea ecx, [ebp - 0x7bc]
call fcn.004546da
mov dword [ebp - 0x18], 0
jmp 0x46bc58
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x7bc]
mov dword [eax + ecx*4], 0x6e82a74
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x46bc45
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, 0xb88c
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
cmp ecx, 0x2ef7
setg dl
mov eax, dword [ebp - 0x40]
xor ebx, ebx
cmp eax, edx
setg bl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, ebx
setle cl
mov dword [esi + 4], ecx
mov dword [ebp - 0x4c], 0
jmp 0x46bcea
mov dword [ebp - 0x48], 0x2295
mov dword [ebp - 0x18], 0
jmp 0x46bcde
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb34], 0x4b58fe4d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46bccd
inc dword [ebp - 0x30]
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edi
jle 0x46bcbd
lea ecx, [ebp - 0x7bc]
call fcn.004547ac
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x18
je 0x46bc1a
lea ecx, [ebp - 0xaf4]
call fcn.004547ac
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 6
lea eax, [ebp - 0x744]
lea ecx, [ebp - 0x734]
jne 0x46bba7
push 3
pop esi
lea ecx, [ebp - 0x608]
call fcn.004547ac
push edi
lea ecx, [ebp - 0x2c8]
call fcn.004546da
mov dword [ebp - 0x4c], 4
mov dword [ebp - 0x48], 5
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], edi
jge 0x46bd73
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xc8], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x46bd61
mov dword [ebp - 0x24], 0
jmp 0x46bd8b
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c8]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x46bd7c
mov edx, dword [ebp - 0x2c8]
and dword [edx], 0
mov eax, dword [edx]
mov ecx, dword [ebp + eax*4 - 0xc8]
mov edx, dword [ebp - 0x2c8]
mov eax, dword [edx]
mov dword [ebp + eax*4 - 0xc8], ecx
dec dword [edx]
jns 0x46bd99
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x46be4a
mov dword [ebp - 0x44], 0xffff
mov dword [ebp - 0x44], 0xfffffffa
mov dword [ebp - 0x28], 0x817d1dc6
mov dword [ebp - 0x2c], edi
mov edx, dword [ebp - 0x28]
imul edx, dword [ebp - 0x28]
add edx, edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x660
setg al
mov ecx, dword [ebp - 0x28]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x28]
test ecx, ecx
jne 0x46be11
mov eax, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x44], edi
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
sub ecx, eax
cmp ecx, dword [ebp - 0xc8]
jne 0x46be2d
cmp dword [ebp - 0x4c], 0
jne 0x46be30
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c8]
mov dword [eax], edi
mov dword [ebp - 0x44], edi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x4c]
jns 0x46bdc3
lea ecx, [ebp - 0x2c8]
call fcn.004547ac
mov dword [ebp - 0x18], 0
jmp 0x46be71
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x518]
mov dword [eax + ecx*4], 0xfb5a5efa
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46be5e
mov dword [ebp - 0x34], 0xffffffef
cmp dword [ebp - 0x34], 0xfffffffd
jg 0x46c5b5
mov dword [ebp - 0x38], esi
movdqa xmm0, xmmword [0xab7bc0]
movdqu xmmword [ebp - 0xa3c], xmm0
lea ecx, [ebp - 0xa3c]
lea eax, [ebp - 0xa2c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x194]
call fcn.00454786
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x2c], 5
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x46c06a
mov dword [ebp - 0x58], 0xe1879501
mov dword [ebp - 0x28], 0xfffffff9
mov dword [ebp - 0x4c], 0xf191
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], esi
jg 0x46c017
mov ecx, dword [ebp - 0x194]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], 0xfbd6c3f0
mov dword [ebp - 0x44], 0x4486cae8
mov dword [ebp - 0x44], 0xfffffffc
mov dword [ebp - 0x44], 0xcfadbac
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jg 0x46bf80
jmp 0x46bf1e
xor eax, eax
mov dword [ebp - 0x44], 6
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46bf3a
push eax
push 0x2106
call dword [0xac73c0]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x1c]
je 0x46bf53
mov eax, dword [ebp - 0x1c]
add eax, 0x31b4f528
je 0x46bf53
mov ebx, edi
jmp 0x46bf55
xor ebx, ebx
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x194]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
sub eax, ebx
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x1c]
push 3
pop esi
cmp dword [ebp - 0x1c], esi
jle 0x46bf1c
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 4]
xor edx, edx
mov eax, dword [ebp - 0x194]
cmp ecx, dword [eax]
setne dl
add edx, 0x3fa9a18
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0x4153
jge 0x46bfa5
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x194]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x58]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x2c], edx
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], esi
push ebx
pop eax
mov ecx, dword [ebp - 0x40]
jle 0x46bef6
xor eax, eax
mov dword [ebp - 0x28], esi
cmp dword [ebp - 0x28], eax
jl 0x46c067
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c033
push eax
push eax
push eax
call dword [section..idata]
xor eax, eax
mov dword [ebp - 0x58], esi
cmp dword [ebp - 0x58], eax
jl 0x46c062
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], esi
jg 0x46c05d
xor ebx, ebx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x194]
cmp dword [eax + ecx*4], ebx
jne 0x46c05b
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], esi
jle 0x46c045
xor eax, eax
dec dword [ebp - 0x58]
jns 0x46c03b
dec dword [ebp - 0x28]
jns 0x46c01f
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], esi
jne 0x46becc
lea ecx, [ebp - 0x194]
call fcn.004547ac
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x46c099
mov eax, dword [ebp - 0x518]
mov eax, dword [eax]
neg eax
je 0x46c097
mov ecx, edi
xor eax, eax
jmp 0x46c09b
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], eax
je 0x46c2a3
mov dword [ebp - 0x30], 0x63f9
mov dword [ebp - 0x28], 0xc781ced8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0xe9c96c79
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x4c], 0x44b2
cmp dword [ebp - 0x4c], 0x4710
jle 0x46c168
push eax
call dword [0xac7308]
xor edi, edi
mov dword [ebp - 0x40], edi
xor ecx, ecx
mov dword [ebp - 0x44], ecx
xor ebx, ebx
mov eax, edi
cdq
idiv ecx
mov eax, edx
mov dword [ebp - 0x2c], eax
xor esi, esi
mov edi, eax
mov ecx, ebx
shl edi, cl
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xac3ef8
call fcn.004545c5
inc esi
cmp esi, 0x4d2f
jl 0x46c0fb
inc ebx
cmp ebx, 0x2bb4
mov eax, dword [ebp - 0x2c]
jl 0x46c0f3
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x3d6e
mov edi, dword [ebp - 0x40]
jl 0x46c0e7
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0xd90
jl 0x46c0e2
xor edi, edi
inc edi
push 0xdd4
push 0x1925
push 0xe1
push 0xb77
push 0x1c2f
call dword [0xac708c]
xor eax, eax
push 3
pop esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 6
cmp dword [ebp - 0x4c], 0x4314
jge 0x46c18a
mov edx, 0xab2808
mov ecx, 0xac3ef8
call fcn.00455f6b
or dword [ebp - 4], 0xffffffff
jmp 0x46c1b4
xor eax, eax
cmp dword [ebp - 0x30], eax
jne 0x46c1eb
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x44], eax
xor eax, eax
cmp dword [ebp - 0x44], eax
mov ecx, eax
je 0x46c1ed
mov ecx, edi
mov eax, dword [ebp - 0x18]
add eax, ecx
cmp eax, edi
jne 0x46c1f9
mov eax, dword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x46c20f
push eax
push eax
push eax
call dword [fcn.00ac723c]
mov dword [ebp - 0x2c], edi
push 2
lea ecx, [ebp - 0x8c8]
call fcn.004546da
mov dword [ebp - 0x18], 0x622ba394
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x46c24c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x8c8]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46c231
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x46c281
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c265
push eax
push eax
push eax
call dword [fcn.00ac7014]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c27e
push eax
push 0xa35
push eax
push eax
call dword [fcn.00ac72c4]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x46c251
lea ecx, [ebp - 0x8c8]
call fcn.004547ac
cmp dword [ebp - 0x2c], 0
jne 0x46c5b5
inc dword [ebp - 0x34]
jmp 0x46be7d
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x46c29b
mov byte [ebp - 0x11], al
push 9
pop ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x44], 0x43c4ab27
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x2c], 0x6bd085c9
mov dword [ebp - 0x44], 0xc4f27d27
mov dword [ebp - 0x30], 0x95031536
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x48], 8
mov dword [ebp - 0x48], 0x2a26f3f1
mov dword [ebp - 0x24], 0x39ecf4a
mov dword [ebp - 0x48], 0xc1d6b3bf
mov dword [ebp - 0x48], 0x7d0b0a35
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x50], 0x6fd5d705
mov dword [ebp - 0x40], 0x4ccfd66c
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x30], 0xbdae
mov dword [ebp - 0x4c], 0x6e149f7f
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x46c358
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7d4], 0x7853
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x46c340
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x46c379
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x30]
xor eax, eax
cmp dword [ebp - 0x50], eax
je 0x46c37b
mov eax, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x7cc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0
je 0x46c39f
mov eax, dword [ebp - 0x7d0]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xfffffff8
setle cl
mov eax, 0xfffb
cmp eax, ecx
sbb eax, eax
inc eax
imul eax, eax, 7
mov ecx, dword [ebp - 0x24]
sub ecx, eax
xor eax, eax
cmp ecx, 0x3772
setl al
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, 0xb1aa
setg cl
mov dword [ebp - 0x38], ecx
cmp byte [ebp - 0x11], 0
je 0x46c5ab
mov dword [ebp - 0x4c], 0x2e91a049
mov dword [ebp - 0x44], 0x8e7ea1b1
mov dword [ebp - 0x4c], 0
cmp dword [ebp - 0x4c], 4
jl 0x46c59d
push edi
lea ecx, [ebp - 0x948]
call fcn.004546da
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0x57994279
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46c446
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x948]
mov dword [eax + ecx*4], 0x124f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46c42c
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], eax
jg 0x46c58a
mov dword [ebp - 0x2c], 0x50c85761
mov dword [ebp - 0x38], 0x4d6d
cmp dword [ebp - 0x38], 0x4e63
jle 0x46c4c2
mov dword [ebp - 0x40], eax
mov edx, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x44], 0x2f38
mov ebx, eax
mov esi, eax
lea eax, [esi + ebx]
or eax, edx
cdq
push edx
push eax
mov ecx, 0xac3ef8
call fcn.004545c5
inc esi
cmp esi, 0x60de
mov edx, dword [ebp - 0x18]
jl 0x46c47c
inc ebx
cmp ebx, 0x2b1e
push 0
pop eax
jl 0x46c47a
mov ecx, dword [ebp - 0x40]
add edx, ecx
mov dword [ebp - 0x18], edx
dec dword [ebp - 0x44]
jne 0x46c478
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0xd05
jl 0x46c46c
push 3
pop esi
mov dword [ebp - 0x30], 2
mov dword [ebp - 4], 8
cmp dword [ebp - 0x38], 0x4bc7
jge 0x46c4e8
mov edx, 0xab286c
mov ecx, 0xac3ef8
call fcn.00455f6b
or dword [ebp - 4], 0xffffffff
jmp 0x46c512
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x46c52a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x988], 0x228d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x46c519
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x97c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x97c]
mov eax, dword [ebp - 0x97c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ecx, edi
sub ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, edi
setle cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x30], 0
jne 0x46c58a
inc dword [ebp - 0x28]
xor eax, eax
jmp 0x46c449
lea ecx, [ebp - 0x948]
call fcn.004547ac
inc dword [ebp - 0x4c]
jmp 0x46c402
push 0x17df
xor ebx, ebx
push ebx
call dword [0xac7310]
dec dword [ebp - 0x1c]
xor eax, eax
jmp 0x46c2a6
lea ecx, [ebp - 0x518]
call fcn.004547ac
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0xfffffffa
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x46c5ff
push 0x31e
push 0x224d
push 0x205
push 0xc51
push 0x135b
push 0xb06
push 0xebc
call dword [0xac7100]
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x46c60e
mov dword [ebp - 0x2c], 0xe42a43d9
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffea
jl 0x46c604
mov dword [ebp - 0x58], 0x5040fc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0xfffffffa
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c659
push 0x31e
push 0x224d
push 0x205
push 0xc51
push 0x135b
push 0xb06
push 0xebc
call dword [0xac7100]
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x46c668
mov dword [ebp - 0x2c], 0xe42a43d9
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffea
jl 0x46c65e
mov dword [ebp - 0x4c], 4
mov dword [ebp - 0x18], edi
movdqa xmm0, xmmword [0xab7c00]
movdqu xmmword [ebp - 0xa7c], xmm0
lea ecx, [ebp - 0xa7c]
lea eax, [ebp - 0xa6c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0xab8]
call fcn.00454786
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x44], 0xf9f36173
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x46c6d2
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb90], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x46c6ba
xor eax, eax
mov dword [ebp - 0x18], 0xffffffee
jmp 0x46c70d
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c6f7
push 0x68a
push 0x4e0
push eax
call dword [0xac70ec]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c70a
push eax
push eax
call dword [0xac744c]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffffe
jl 0x46c6db
dec dword [ebp - 0x44]
lea ecx, [ebp - 0xab8]
call fcn.004547ac
mov dword [ebp - 0x18], edi
movdqa xmm0, xmmword [0xab7c00]
movdqu xmmword [ebp - 0x9fc], xmm0
lea ecx, [ebp - 0x9fc]
lea eax, [ebp - 0x9ec]
push ecx
push eax
push ecx
lea ecx, [ebp - 0xb24]
call fcn.00454786
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x44], 0xf9f36173
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x46c77e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd1c], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x46c766
xor eax, eax
mov dword [ebp - 0x18], 0xffffffee
jmp 0x46c7b9
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c7a3
push 0x68a
push 0x4e0
push eax
call dword [0xac70ec]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c7b6
push eax
push eax
call dword [0xac744c]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffffe
jl 0x46c787
dec dword [ebp - 0x44]
lea ecx, [ebp - 0xb24]
call fcn.004547ac
mov dword [ebp - 0x20], 0x871c7bf0
mov dword [ebp - 0x50], 0x31fc
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46c7fa
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x74], 0x4a6847df
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46c7e5
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46c811
push eax
push 0x2ce
call dword [fcn.00ac73ac]
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x46ca64
mov dword [ebp - 0x24], 0x250e6da5
mov dword [ebp - 0x40], 0x6187
cmp dword [ebp - 0x40], 0x624d
jle 0x46c8d6
mov dword [ebp - 0x18], eax
jmp 0x46c83f
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x46c848
xor eax, eax
mov esi, eax
mov dword [ebp - 0x44], esi
jmp 0x46c851
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, ecx
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x3c], eax
xor ebx, ebx
mov esi, dword [ebp - 0x2c]
lea ecx, [eax + esi]
mov eax, dword [ebp - 0x18]
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xd4c]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.004545ba
push eax
call fcn.004b3bf7
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xd4c]
call fcn.00454ab6
inc esi
cmp esi, 0x325f
mov eax, dword [ebp - 0x3c]
jl 0x46c863
mov esi, dword [ebp - 0x44]
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x1852
mov ecx, dword [ebp - 0x30]
jl 0x46c84f
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x673c
jl 0x46c846
mov edx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x18], edx
cmp edx, 0x5840
jl 0x46c83d
push 3
pop esi
mov dword [ebp - 0x30], edi
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x40], 0x5fa3
jge 0x46c8f4
push 0xab28bc
call fcn.004b3bf7
pop ecx
or dword [ebp - 4], 0xffffffff
push 9
pop ecx
jmp 0x46c924
xor eax, eax
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x46c9e7
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x44], 0xfffffffc
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x74]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x2f144811
setle al
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp eax, ecx
setg dl
imul eax, dword [ebp - 0x40], 0xffff
sub eax, 0x9e22
neg eax
sbb eax, eax
inc eax
sub edx, eax
mov eax, dword [ebp - 0x74]
add edx, eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x74]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x44], 0
je 0x46c9bf
mov eax, dword [ebp - 0x24]
xor ebx, ebx
cmp dword [ebp + eax*4 - 0x74], ebx
je 0x46c9bf
mov ecx, edi
jmp 0x46c9c3
xor ecx, ecx
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x74]
imul eax, ecx
mov ecx, dword [ebp - 0x20]
sub ecx, eax
imul ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x24]
push 9
pop ecx
jns 0x46c939
jmp 0x46c9e9
xor ebx, ebx
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x74], ebx
je 0x46ca22
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x20], 0xe69e
test eax, eax
jne 0x46ca07
cmp dword [ebp - 0x50], eax
mov edx, eax
je 0x46ca09
mov edx, edi
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x74]
xor ecx, ecx
cmp eax, esi
setne cl
imul ecx, edx
test ecx, ecx
je 0x46ca22
mov esi, edi
jmp 0x46ca24
xor esi, esi
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp esi, eax
setg cl
add edx, ecx
xor eax, eax
cmp edx, 0xd0cd
setg al
cmp eax, 0xfa025ec5
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x74]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x20]
xor eax, eax
push 3
pop esi
jmp 0x46c814
push esi
lea ecx, [ebp - 0x7ec]
call fcn.004546da
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 0xfffffff9
mov dword [ebp - 0x18], 0x2193
cmp dword [ebp - 0x18], 0x21de
jle 0x46cb06
mov edi, eax
mov dword [ebp - 0x30], edi
jmp 0x46ca95
xor eax, eax
mov ebx, eax
mov dword [ebp - 0x40], ebx
jmp 0x46ca9e
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x44], ecx
mov eax, edi
cdq
idiv ebx
mov eax, edx
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov esi, ebx
cdq
idiv ecx
mov edi, edx
mov eax, edi
and eax, esi
cdq
push edx
push eax
mov ecx, 0xac3ef8
call fcn.004545c5
inc esi
cmp esi, 0xf11
jl 0x46cab6
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x5574
mov eax, dword [ebp - 0x2c]
jl 0x46caaf
mov ebx, dword [ebp - 0x40]
inc ebx
mov dword [ebp - 0x40], ebx
cmp ebx, 0x6119
mov edi, dword [ebp - 0x30]
jl 0x46ca9c
inc edi
mov dword [ebp - 0x30], edi
cmp edi, 0x6305
jl 0x46ca93
xor edi, edi
inc edi
push 3
pop esi
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x18], 0x1dbd
jge 0x46cb25
mov edx, 0xab28cc
mov ecx, 0xac3ef8
call fcn.00455f6b
or dword [ebp - 4], 0xffffffff
jmp 0x46cb4f
mov edx, 0xfffb
xor eax, eax
mov dword [ebp - 0x2c], 0x1cc0e426
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x46cb7f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x7ec]
mov dword [eax + ecx*4], 0x313dd33a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46cb65
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 4
jge 0x46cb9f
xor ebx, ebx
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x164], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x46cb8a
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x46cbc1
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x950], 9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x46cba8
xor eax, eax
mov dword [ebp - 0x158], 2
cmp dword [ebp - 0x158], eax
jge 0x46cc05
xor ebx, ebx
lea ecx, [ebp - 0x7ec]
call fcn.004547ac
mov dword [ebp - 0x34], ebx
push 4
lea ecx, [ebp - 0x27c]
call fcn.004546da
mov dword [ebp - 0x1c], 0x532fe223
mov dword [ebp - 0x18], 0
jmp 0x46ccab
xor eax, eax
mov dword [ebp - 0x2c], 0xfffa
mov dword [ebp - 0x18], eax
jmp 0x46cc1e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x300], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46cc11
mov eax, dword [ebp - 0x158]
mov eax, dword [ebp - 0x158]
mov eax, dword [ebp - 0x158]
mov eax, dword [ebp - 0x15c]
add eax, 0x8c10
cmp edx, eax
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x15c]
xor ebx, ebx
mov dword [ebp - 0x300], ebx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x158]
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x950], eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x158]
mov edx, 0xfffb
jns 0x46cc03
jmp 0x46cbd5
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x27c]
mov dword [eax + ecx*4], 0xb9b5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x46cc98
mov dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], esi
jg 0x46ce76
mov dword [ebp - 0x2c], 0x7b30498d
mov dword [ebp - 0x3c], 0xb370
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x27c]
xor ebx, ebx
cmp dword [eax + ecx*4], ebx
jne 0x46ce76
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x27c]
cmp dword [eax + ecx*4], ebx
je 0x46cdb0
mov dword [ebp - 0x28], esi
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x50], 0xf3352fb2
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xfffffff9
jg 0x46ce6e
mov esi, dword [ebp - 0x27c]
jmp 0x46cd1b
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46cd3b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x84], 0xc842
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46cd23
xor eax, eax
cmp dword [ebp - 0x84], eax
je 0x46cd53
mov eax, dword [ebp - 0x84]
xor eax, eax
cmp dword [ebp - 0x84], eax
jne 0x46cd58
mov eax, dword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x84], ebx
jne 0x46cd6f
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x28]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, 0x21a07835
setl dl
xor eax, eax
cmp edx, dword [esi + 8]
setge al
mov dword [ebp - 0x50], eax
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff9
jle 0x46cd19
jmp 0x46ce6b
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x46cdc4
push eax
push eax
call dword [fcn.00ac73bc]
xor eax, eax
mov dword [ebp - 0x44], 0x1624
cmp dword [ebp - 0x44], 0x17a3
jle 0x46ce14
mov edi, eax
mov ebx, eax
mov esi, eax
mov eax, ebx
cdq
idiv esi
or edx, edi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xac3ef8
call fcn.004545c5
inc esi
cmp esi, 0x2bbf
jl 0x46cdda
inc ebx
cmp ebx, 0x36c5
push 0
pop eax
jl 0x46cdd8
inc edi
cmp edi, 0x79f5
jl 0x46cdd6
xor edi, edi
inc edi
push 3
pop esi
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x46ce25
push eax
call dword [fcn.00ac7038]
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x44], 0x125b
jge 0x46ce44
mov edx, 0xab291c
mov ecx, 0xac3ef8
call fcn.00455f6b
or dword [ebp - 4], 0xffffffff
jmp 0x46ce6e
push 3
pop esi
inc dword [ebp - 0x1c]
jmp 0x46ccb8
lea ecx, [ebp - 0x27c]
call fcn.004547ac
mov dword [ebp - 0x2c], 0xfffffffa
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x46d013
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x44], 0xf08700d3
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 7
push esi
lea ecx, [ebp - 0x324]
call fcn.004546da
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], edi
jge 0x46ced8
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xa4], 0xfffffff8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x46cec0
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x46cef8
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x8dc], 5
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46cee0
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x46cf1a
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x324]
mov dword [eax + ecx*4], 0x949f0dc4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46cf00
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x46cf33
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46cf30
call dword [fcn.00ac7438]
xor eax, eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], eax
jle 0x46cf1f
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x44], 0xffff
imul eax, dword [ebp - 0x44], 0xa0c0
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x8d8]
xor edx, edx
cmp ecx, eax
setge dl
xor ebx, ebx
cmp edx, 0x67bc
setl bl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp ebx, eax
setl cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xfffffff7
setg cl
mov eax, dword [ebp - 0x324]
cmp ecx, dword [eax + 4]
jl 0x46cfc9
xor eax, eax
cmp dword [ebp - 0x8d8], eax
jne 0x46cfc9
cmp dword [ebp - 0x20], eax
je 0x46cfcb
mov eax, edi
xor ecx, ecx
cmp eax, 0xcbd4daed
setne cl
mov eax, dword [ebp - 0x324]
mov dword [eax], ecx
lea ecx, [ebp - 0x324]
call fcn.004547ac
push 0x31e
push 0x224d
push 0x205
push 0xc51
push 0x135b
push 0xb06
push 0xebc
call dword [0xac7100]
xor eax, eax
mov dword [ebp - 0x34], 0x66e6
cmp dword [ebp - 0x34], 0x6946
jle 0x46d070
mov edi, eax
mov ebx, eax
mov esi, eax
mov eax, ebx
cdq
idiv esi
mov eax, edi
mov ecx, edx
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xac3ef8
call fcn.004545c5
inc esi
cmp esi, 0x48f7
jl 0x46d029
inc ebx
cmp ebx, 0x3096
push 0
pop eax
jl 0x46d027
inc edi
cmp edi, 0x5ff3
jl 0x46d025
push 0x1b4a
call dword [0xac739c]
xor edi, edi
inc edi
push 3
pop esi
mov dword [ebp - 0x20], 0x871c7bf0
mov dword [ebp - 0x2c], 0x31fc
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46d09d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x70], 0x4a6847df
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x46d088
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46d0b4
push eax
push 0x2ce
call dword [fcn.00ac73ac]
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x46d20c
jmp 0x46d0c4
xor eax, eax
mov dword [ebp - 0x24], 0x250e6da5
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x46d190
mov dword [ebp - 0x44], 9
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x44], 0xfffffffc
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x70]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x2f144811
setle al
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp eax, ecx
setg dl
imul eax, dword [ebp - 0x40], 0xffff
sub eax, 0x9e22
neg eax
sbb eax, eax
inc eax
sub edx, eax
mov eax, dword [ebp - 0x70]
add edx, eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x70]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x44], 0
je 0x46d16b
mov eax, dword [ebp - 0x24]
xor ebx, ebx
cmp dword [ebp + eax*4 - 0x70], ebx
je 0x46d16b
mov ecx, edi
jmp 0x46d16f
xor ecx, ecx
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x70]
imul eax, ecx
mov ecx, dword [ebp - 0x20]
sub ecx, eax
imul ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x24]
jns 0x46d0e1
jmp 0x46d192
xor ebx, ebx
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x70], ebx
je 0x46d1cb
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x20], 0xe69e
test eax, eax
jne 0x46d1b0
cmp dword [ebp - 0x2c], eax
mov edx, eax
je 0x46d1b2
mov edx, edi
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x70]
xor ecx, ecx
cmp eax, esi
setne cl
imul ecx, edx
test ecx, ecx
je 0x46d1cb
mov esi, edi
jmp 0x46d1cd
xor esi, esi
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp esi, eax
setg cl
add edx, ecx
xor eax, eax
cmp edx, 0xd0cd
setg al
cmp eax, 0xfa025ec5
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x20]
push 3
pop esi
jns 0x46d0c2
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x34], 0x6319
jge 0x46d22b
mov edx, 0xab293c
mov ecx, 0xac3ef8
call fcn.00455f6b
or dword [ebp - 4], 0xffffffff
jmp 0x46d252
push 3
pop ebx
xor eax, eax
mov dword [ebp - 0x34], eax
jmp 0x46d4a6
mov dword [ebp - 0x1c], 0xfffffff6
mov dword [ebp - 0x38], 0x471dfd94
lea ecx, [ebp - 0x6c8]
call fcn.004546da
mov dword [ebp - 0x20], 0x7d2038e8
push 4
lea ecx, [ebp - 0x2f8]
call fcn.004546da
mov dword [ebp - 0x2c], 0xfaf1
mov dword [ebp - 0x24], 0
jmp 0x46d2ab
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x6c8]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x46d29c
mov dword [ebp - 0x24], 0
jmp 0x46d2cc
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2f8]
mov dword [eax + ecx*4], 0x56e74e80
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x46d2b9
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x6c8]
mov dword [ebp - 0x3c], esi
mov dword [esi + 8], edx
mov ecx, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
neg ecx
xor eax, eax
cmp ecx, edx
setl al
xor ecx, ecx
cmp eax, 0x790e8648
setne cl
imul ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1c]
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
mov byte [ebp - 0x11], al
sub ecx, 0x1891a4ec
je 0x46d363
cmp byte [ebp - 0x11], al
je 0x46d342
push eax
push 0x1e2d
push eax
push 0x266e
call dword [0xac70c0]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46d39b
push eax
push 0x4db
push 0x889
push 0x26bf
call dword [0xac70f8]
jmp 0x46d399
cmp byte [ebp - 0x11], al
je 0x46d37c
push eax
push eax
push 0xcbe
push 0xd78
call dword [0xac73a8]
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xfffffff3
jle 0x46d399
mov ecx, dword [ebp - 0x2f8]
cmp dword [ecx + 8], eax
jne 0x46d399
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff3
jg 0x46d38b
xor eax, eax
mov dword [ebp - 0x38], 0xfffffffe
jmp 0x46d47c
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x18], 0xf0aeacb2
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x30], 0x3028
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x46d3e1
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7b0], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x46d3c8
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jg 0x46d479
xor ebx, ebx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2f8]
cmp dword [eax + ecx*4], ebx
je 0x46d400
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x11
jge 0x46d3a7
lea ecx, [ebp - 0x2f8]
call fcn.004547ac
lea ecx, [ebp - 0x6c8]
call fcn.004547ac
mov dword [ebp - 0x2c], 0xe42a43d9
dec dword [ebp - 0x34]
push ebx
cmp dword [ebp - 0x34], 0xffffffea
jl 0x46d25f
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x804]
call fcn.004546da
mov dword [ebp - 0x18], 0xd8a87013
mov dword [ebp - 0x34], 0x2c0b
cmp dword [ebp - 0x34], 0x2d5d
jle 0x46d565
xor ecx, ecx
mov dword [ebp - 0x18], ecx
xor eax, eax
mov dword [ebp - 0x40], eax
xor edx, edx
mov dword [ebp - 0x30], edx
mov ebx, ecx
mov ecx, eax
sar ebx, cl
mov dword [ebp - 0x2c], ebx
xor esi, esi
xor ebx, ebx
mov eax, esi
xor eax, edx
or eax, dword [ebp - 0x2c]
cdq
push edx
push eax
lea ecx, [ebp - 0xb84]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.004545ba
push eax
call fcn.004b3bf7
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xb84]
call fcn.00454ab6
inc esi
cmp esi, 0xcbb
mov edx, dword [ebp - 0x30]
jl 0x46d4fb
mov dword [ebp - 0x18], 0
jmp 0x46d581