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

Disassembly:
mov eax, 0x4bdc2b
call fcn.004bd140
sub esp, 0xe40
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x60], dl
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x30], 0x9f4288a1
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0xce12
setg cl
mov dword [ebp - 0x30], ecx
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x45a12a
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45a127
push 0x21c0
push 0x1b11
push eax
push eax
push eax
call dword [0xab5330]
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jge 0x45a109
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x45a152
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x108], 1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45a139
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45a16e
push 0x2248
push 0x116e
push eax
call dword [0xab53bc]
xor eax, eax
mov dword [ebp - 0x34], 0x1584
cmp dword [ebp - 0x34], 0x18c0
jle 0x45a1dc
mov edi, eax
jmp 0x45a184
xor eax, eax
mov esi, eax
jmp 0x45a18a
xor eax, eax
mov ebx, eax
mov eax, esi
mov ecx, ebx
sar eax, cl
xor eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xd20]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd20]
call fcn.0044d505
inc ebx
cmp ebx, 0x6315
jl 0x45a18c
inc esi
cmp esi, 0xff1
jl 0x45a188
inc edi
cmp edi, 0x105d
jl 0x45a182
xor eax, eax
mov dword [ebp - 0x108], eax
jmp 0x45a208
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45a202
push 0x554
push eax
push 0xa4f
call dword [0xab53d8]
xor eax, eax
inc dword [ebp - 0x108]
cmp dword [ebp - 0x108], 0x15
je 0x45a1e6
mov dword [ebp - 4], eax
cmp dword [ebp - 0x34], 0x127f
jge 0x45a228
push 0xaa2598
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov dword [ebp - 0x2c], 8
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x2c], 0xc20f746e
mov dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x45a26c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x650], 0x4ec2e0cf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45a253
xor eax, eax
mov dword [ebp - 0x20], 3
cmp dword [ebp - 0x20], eax
jl 0x45a293
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + eax*4 - 0x650]
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x650], ecx
dec dword [ebp - 0x20]
jns 0x45a278
xor eax, eax
mov dword [ebp - 0x20], 0xb
push 0xfffffffffffffffa
pop esi
cmp dword [ebp - 0x20], 0xffffffe8
jge 0x45a670
mov dword [ebp - 0x4c], 0xffffffff
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x40], 0xfffffff9
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0x11
jle 0x45a668
mov dword [ebp - 0x44], 0x3173
cmp dword [ebp - 0x44], 0x333b
jle 0x45a38a
mov ebx, eax
mov dword [ebp - 0x38], ebx
jmp 0x45a2fc
xor eax, eax
mov edi, eax
jmp 0x45a302
xor eax, eax
mov esi, eax
mov edx, ebx
mov ecx, edi
shl edx, cl
mov dword [ebp - 0x50], edx
mov ebx, edx
jmp 0x45a313
xor eax, eax
mov edx, eax
mov dword [ebp - 0x34], edx
mov eax, ebx
mov ecx, esi
sar eax, cl
mov dword [ebp - 0x50], eax
and eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xb7c]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb7c]
call fcn.0044d505
mov edx, dword [ebp - 0x34]
inc edx
mov dword [ebp - 0x34], edx
cmp edx, 0x204f
mov eax, dword [ebp - 0x50]
jl 0x45a321
inc esi
cmp esi, 0x53d2
jl 0x45a311
inc edi
cmp edi, 0x4201
mov ebx, dword [ebp - 0x38]
jl 0x45a300
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, 0x7d47
jl 0x45a2fa
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x48], 0x80d416db
mov dword [ebp - 4], 2
cmp dword [ebp - 0x44], 0x2eed
jge 0x45a3ac
push 0xaa25e8
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45a3d3
xor eax, eax
xor ebx, ebx
inc ebx
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0xfffffff7
jne 0x45a63a
mov dword [ebp - 0x18], 0xfffffff9
mov dword [ebp - 0x34], 0x6b0
cmp dword [ebp - 0x34], 0x976
jle 0x45a450
mov esi, eax
jmp 0x45a409
xor eax, eax
mov edi, eax
mov eax, edi
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xdb0]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xdb0]
call fcn.0044d505
inc edi
cmp edi, 0x7eb
jl 0x45a40b
inc esi
cmp esi, 0x5243
jl 0x45a407
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x30], 0xcd329b3a
mov dword [ebp - 4], 4
cmp dword [ebp - 0x34], 0x46c
jge 0x45a472
push 0xaa2628
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45a4a0
cmp dword [ebp - 0x18], eax
je 0x45a59f
mov dword [ebp - 0x38], 0xfffffffb
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x50], 0x35a02a90
mov dword [ebp - 0x18], 0xc
jmp 0x45a525
mov dword [ebp - 0x50], 0xac7eb236
mov dword [ebp - 0x54], ebx
mov eax, dword [ebp - 0x4c]
cmp eax, 6
setne cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0x30]
test eax, eax
jne 0x45a51d
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ebp - 0x14], eax
xor eax, eax
cmp dword [ebp - 0x48], ebx
jb 0x45a502
cmp dword [ebp - 0x50], eax
je 0x45a502
cmp dword [ebp - 0x4c], eax
je 0x45a502
mov eax, ebx
lea ecx, [eax + 0x1ca7a35e]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setg dl
neg edx
mov dword [ebp - 0x54], edx
jne 0x45a51d
xor eax, eax
jmp 0x45a51f
mov eax, ebx
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
xor ecx, ecx
cmp dword [ebp - 0x18], 0x1a
jg 0x45a4c3
mov eax, dword [ebp - 0x30]
test eax, eax
setle cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setg dl
sub edx, 0xb458
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ecx
setl dl
mov eax, dword [ebp - 0x58]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x8a746c20
sbb edx, edx
neg edx
imul edx, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x48]
imul edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
inc edx
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x50], ecx
jmp 0x45a602
mov dword [ebp - 0x50], 0xb4e60d2e
mov dword [ebp - 0x54], 0x1f101fbe
cmp dword [ebp - 0x30], eax
jne 0x45a638
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0xfffffffd
setle cl
imul eax, ecx, 9
test eax, eax
jne 0x45a5cd
cmp dword [ebp - 0x48], eax
je 0x45a5cf
mov eax, ebx
lea ecx, [eax + 0xe1ab]
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, ebx
setge cl
imul ecx, dword [ebp - 0x648]
cmp ecx, 2
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x28]
imul eax, ecx
mov dword [ebp - 0x54], eax
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x45a610
cmp dword [ebp - 0x48], eax
mov ecx, ebx
jne 0x45a612
mov ecx, eax
mov eax, dword [ebp - 0x650]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], 0x7cfeb45d
dec dword [ebp - 0x48]
xor eax, eax
jmp 0x45a3e2
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45a65e
push 0x1f32
push eax
push 0x14a4
push 0x23c7
push 0x2580
call dword [fcn.00ab50ac]
inc dword [ebp - 0x4c]
xor eax, eax
jmp 0x45a2bb
dec dword [ebp - 0x20]
jmp 0x45a29d
mov dword [ebp - 0x3c], 0x250e6da5
mov dword [ebp - 0x3c], 0xfc4f27d2
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x18], 0x2c70bb74
mov dword [ebp - 0x48], 7
mov dword [ebp - 0x4c], 0xa644184e
mov dword [ebp - 0x38], 0x2bc6
cmp dword [ebp - 0x38], 0x2cf7
jle 0x45a6eb
mov edi, eax
mov esi, eax
mov dword [ebp - 0x34], eax
mov ebx, esi
mov esi, 0xacf
mov eax, ebx
and eax, edi
cdq
push edx
push eax
mov ecx, 0xab2718
call fcn.0044d014
dec ebx
dec esi
jne 0x45a6b8
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x745
jl 0x45a6b1
inc edi
cmp edi, 0x56fd
push 0
pop eax
jl 0x45a6ac
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x20], 0
xor ebx, ebx
inc ebx
jmp 0x45a708
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x88], 0x8206
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x45a6f7
mov dword [ebp - 4], 6
cmp dword [ebp - 0x38], 0x2ad7
jge 0x45a72c
mov edx, 0xaa2640
mov ecx, 0xab2718
call fcn.0044e9ba
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45a75a
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x45a778
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xac4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x45a763
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x45ab65
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x44], 0x5bfb
cmp dword [ebp - 0x44], 0x5f7d
jle 0x45a818
mov edi, eax
mov dword [ebp - 0x38], edi
jmp 0x45a7ab
xor eax, eax
mov esi, eax
mov dword [ebp - 0x34], esi
jmp 0x45a7b4
xor eax, eax
mov ebx, eax
mov eax, edi
cdq
idiv esi
mov edi, edx
mov eax, edi
and eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xc60]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc60]
call fcn.0044d505
inc ebx
cmp ebx, 0x3278
jl 0x45a7bd
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x2bb3
mov edi, dword [ebp - 0x38]
jl 0x45a7b2
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x2fc0
jl 0x45a7a9
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x40], 0xd93cbfb4
mov dword [ebp - 4], 8
cmp dword [ebp - 0x44], 0x58bf
jge 0x45a83a
push 0xaa26d0
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45a861
xor ebx, ebx
inc ebx
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 0xffffffff
push ebx
lea ecx, [ebp - 0x848]
call fcn.0044d129
mov dword [ebp - 0x14], 0
jmp 0x45a89a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x848]
mov dword [eax + ecx*4], 0xe46ed4d3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45a887
mov eax, dword [ebp - 0x18]
xor edi, edi
cmp dword [ebp + eax*4 - 0x88], edi
je 0x45a953
mov dword [ebp - 0x2c], 0x29478c9d
mov dword [ebp - 0x14], edi
jmp 0x45a8ce
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6dc], 0x1c2a9118
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45a8bd
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x88]
cmp dword [ebp - 0x2c], edi
je 0x45a8f5
mov eax, dword [ebp - 0x18]
xor edi, edi
cmp dword [ebp + eax*4 - 0x88], edi
je 0x45a8f5
mov eax, ebx
jmp 0x45a8f7
xor eax, eax
add eax, 0x1a81
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x88]
cmp dword [ebp - 0x34], eax
jl 0x45a91d
xor eax, eax
cmp dword [ebp - 0x2c], eax
mov ecx, eax
je 0x45a91f
mov ecx, ebx
mov dword [ebp - 0x30], 0xfffffffb
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov dword [ebp - 0x6d8], ecx
jmp 0x45ab50
mov dword [ebp - 0x34], 0xef0
cmp dword [ebp - 0x34], 0x1019
jle 0x45a9ac
push 0
push 0x1689
call dword [0xab53f0]
xor esi, esi
xor edi, edi
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xab2718
call fcn.0044d014
inc edi
cmp edi, 0x7dd9
jl 0x45a974
inc esi
cmp esi, 0x988
jl 0x45a972
push 0
push 0x1519
push 0x14fe
call dword [0xab536c]
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x38], 0xfffffff9
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0xb28
jge 0x45a9d2
mov edx, 0xaa2718
mov ecx, 0xab2718
call fcn.0044e9ba
or dword [ebp - 4], 0xffffffff
jmp 0x45a9f9
mov dword [ebp - 0x44], 0x6964
cmp dword [ebp - 0x44], 0x6d10
jle 0x45aa88
call dword [0xab5374]
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x38], esi
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], 0x1bfb
xor edi, edi
mov esi, dword [ebp - 0x14]
mov eax, esi
mov ecx, edi
sar eax, cl
xor eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xd50]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd50]
call fcn.0044d505
inc edi
cmp edi, 0x32e8
jl 0x45aa27
mov esi, dword [ebp - 0x38]
add dword [ebp - 0x14], esi
dec dword [ebp - 0x34]
jne 0x45aa22
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x5d22
jl 0x45aa16
inc ebx
cmp ebx, 0x5a00
jl 0x45aa11
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x44], 0x6955
jge 0x45aaa3
push 0xaa2780
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45aaca
xor eax, eax
xor ebx, ebx
inc ebx
mov dword [ebp - 0x34], 0xffff
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x45aaf4
xor edi, edi
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6b8], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45aae0
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x45ab4d
mov dword [ebp - 0x50], 4
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x40], 0
jne 0x45ab1e
mov eax, dword [ebp - 0x18]
xor edi, edi
cmp dword [ebp + eax*4 - 0x88], edi
jne 0x45ab1e
xor ecx, ecx
jmp 0x45ab20
mov ecx, ebx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
cmp ecx, 7
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x4c], 0x5f8a4198
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0
jle 0x45aafc
inc dword [ebp - 0x34]
lea ecx, [ebp - 0x848]
call fcn.0044d1fb
dec dword [ebp - 0x18]
xor eax, eax
jmp 0x45a77b
mov dword [ebp - 0x4c], eax
jmp 0x45aba2
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45ab7e
push eax
push eax
push eax
call dword [fcn.00ab52e8]
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45ab9f
push eax
push 0x721
push 0x1f55
push 0x1cdf
call dword [fcn.00ab50f0]
xor eax, eax
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffed
jle 0x45ab6a
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 0x14], 5
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x54], 5
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x58], 5
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x40], 0x65835a7a
push 3
lea ecx, [ebp - 0x480]
call fcn.0044d129
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x38], 0xd734
mov dword [ebp - 0x44], 0x1c19cd89
mov dword [ebp - 0x48], 0xfffffffe
mov dword [ebp - 0x20], 0
jmp 0x45ac1e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xfc], 0x722ba7b7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x45ac0d
mov dword [ebp - 0x20], 0
jmp 0x45ac3f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x480]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x45ac2c
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, 0x8f6c218e
setne cl
sub ecx, 0xb4ef
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x252c
setne al
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x58]
sub ecx, dword [ebp - 0x30]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0xffffffff
setge al
cmp eax, dword [ebp - 0x40]
je 0x45aca9
xor eax, eax
cmp dword [ebp - 0x50], eax
mov esi, eax
je 0x45acab
mov esi, ebx
mov edx, dword [ebp - 0x480]
mov eax, dword [edx + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp esi, eax
setne cl
mov eax, dword [ebp - 0x34]
inc dword [edx + 4]
cmp eax, ecx
jne 0x45accf
mov eax, ebx
jmp 0x45acd1
xor eax, eax
mov edx, dword [ebp - 0x38]
add edx, eax
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x54]
neg eax
sbb eax, eax
neg eax
add eax, 0xfffffffb
je 0x45ad0a
cmp dword [ebp - 0x48], 0
je 0x45ad0a
mov ecx, ebx
jmp 0x45ad0c
xor ecx, ecx
mov eax, dword [ebp - 0x44]
imul eax, ecx
mov dword [ebp - 0x58], eax
lea ecx, [ebp - 0x480]
call fcn.0044d1fb
mov dword [ebp - 0x3c], 0xecf4a416
push ebx
lea ecx, [ebp - 0x860]
call fcn.0044d129
mov dword [ebp - 0x4c], 0xfffffff7
push 2
lea ecx, [ebp - 0x320]
call fcn.0044d129
mov dword [ebp - 0x2c], 0x7684abf0
mov dword [ebp - 0x238], 2
mov dword [ebp - 0x234], 2
mov dword [ebp - 0x230], 2
mov dword [ebp - 0x22c], 2
mov dword [ebp - 0x40], 0xf0d30663
mov dword [ebp - 0x20], 0
jmp 0x45ad97
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x4ec], 0x624039b6
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x45ad86
mov dword [ebp - 0x20], 0
jmp 0x45adb6
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x320]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x45ada6
mov dword [ebp - 0x4c], 0
jmp 0x45adf8
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x34], 0xc427
mov dword [ebp - 0x14], 0
jmp 0x45aded
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c8], 0xa2961c0f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45addc
inc dword [ebp - 0x34]
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 2
jle 0x45adc5
mov eax, dword [ebp - 0x4e4]
cmp dword [ebp - 0x4c], 0
je 0x45ae19
mov dword [ebp - 0x34], 0xd1f2e966
inc dword [ebp - 0x34]
jmp 0x45af46
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], 0x55f1bb13
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, 7
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x4e8]
imul eax, ecx, 0xfffd
cmp eax, dword [ebp - 0x4c]
je 0x45ae5d
xor eax, eax
cmp dword [ebp - 0x30], eax
mov ecx, eax
je 0x45ae5f
mov ecx, ebx
mov esi, dword [ebp - 0x320]
mov dword [esi + 4], ecx
neg ecx
xor eax, eax
cmp ecx, 0x4549773c
setg al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4e8]
imul eax, eax, 6
mov edx, dword [ebp - 0x4c]
sub edx, eax
mov eax, dword [ebp - 0x234]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0xffffffff
jne 0x45aede
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x45aed6
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45aeba
push eax
call dword [fcn.00ab5404]
xor eax, eax
mov dword [ebp - 0x4c], 0xfffffffc
jmp 0x45aecd
mov dword [ebp - 0x14], 5
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 5
jge 0x45aec3
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 5
jl 0x45aea8
jmp 0x45af40
mov dword [ebp - 0x34], 0xfffffffe
mov eax, dword [ebp - 0x238]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp dword [esi + 4], ebx
setg dl
mov eax, dword [ebp - 0x234]
xor ecx, ecx
cmp eax, edx
setne cl
mov edx, dword [ebp - 0x40]
add edx, ecx
mov eax, dword [ebp - 0x230]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, 3
sbb ecx, ecx
neg ecx
mov eax, 0xdb81fdf2
sub eax, ecx
xor ecx, ecx
cmp eax, 2
setl cl
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x320]
mov dword [eax], edx
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x320]
call fcn.0044d1fb
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x34]
add eax, 0x37bc
mov dword [ebp - 0x14], eax
je 0x45af77
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
jmp 0x45af84
mov dword [ebp - 0x40], 0xca9869ec
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], ebx
jge 0x45afa6
xor edi, edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x860]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45af92
mov dword [ebp - 0x48], 0xfffffff9
mov dword [ebp - 0x34], 0xf4c59cdc
mov dword [ebp - 0x14], 0x6b8d9637
mov dword [ebp - 0x2c], 0xfffffff6
push 3
lea ecx, [ebp - 0x16c]
call fcn.0044d129
mov dword [ebp - 0x38], 0xc4e
mov dword [ebp - 0x40], 0x1aa12afd
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 3
jge 0x45b002
push 0xfffffffffffffffa
pop edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x16c]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45afed
mov edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x48]
sub edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setle cl
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
setg dl
xor eax, eax
add edx, 0x2728
jne 0x45b04e
cmp dword [ebp - 0x14], eax
mov ecx, eax
je 0x45b050
mov ecx, ebx
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], eax
jne 0x45b05b
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x16c]
mov dword [eax], 0x623b
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x16c]
cmp dword [eax], ecx
je 0x45b080
xor eax, eax
cmp dword [ebp - 0x38], eax
mov ecx, eax
je 0x45b082
mov ecx, ebx
mov eax, dword [ebp - 0x48]
imul eax, ecx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x16c]
cmp dword [eax], ecx
setne dl
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x16c]
call fcn.0044d1fb
mov dword [ebp - 0x2c], 0xffffffec
cmp dword [ebp - 0x2c], 0xfffffff2
jge 0x45b27b
mov edi, 0xfffe
push 3
pop esi
mov dword [ebp - 0x3c], 0xb51dba33
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], 0x8a1f9496
mov dword [ebp - 0x40], 0x9ac70c30
mov dword [ebp - 0x44], 0x2b165808
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], 4
push 2
lea ecx, [ebp - 0x414]
call fcn.0044d129
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 4
jge 0x45b128
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x96c], 0xd811f07b
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x45b10f
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x45b140
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x414]
mov dword [eax + ecx*4], 0xfff9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x45b12d
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x414]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x960]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp eax, ecx
setge dl
mov ecx, dword [ebp - 0x964]
add ecx, edx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
sub eax, 0xfc65
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x38]
add eax, 0x67d
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x414]
call fcn.0044d1fb
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x45b1d9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xaac], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45b1c0
xor eax, eax
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], eax
jl 0x45b204
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45b1f2
push eax
push eax
call dword [fcn.00ab5188]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xaac]
dec dword [ebp - 0x18]
push 0
pop eax
jns 0x45b1e1
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], eax
jl 0x45b22a
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45b225
push eax
push eax
push 0x2478
push eax
call dword [fcn.00ab5400]
xor eax, eax
dec dword [ebp - 0x18]
jns 0x45b20c
push esi
lea ecx, [ebp - 0x6c4]
call fcn.0044d129
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], esi
jge 0x45b260
xor edi, edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6c4]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x45b247
mov edi, 0xfffe
dec dword [ebp - 0x34]
lea ecx, [ebp - 0x6c4]
call fcn.0044d1fb
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xfffffff2
jl 0x45b0c7
mov dword [ebp - 0x34], 0x4ea8
cmp dword [ebp - 0x34], 0x4eb3
jle 0x45b2b4
xor edi, edi
xor esi, esi
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xab2718
call fcn.0044d014
inc esi
cmp esi, 0x1389
jl 0x45b28f
inc edi
cmp edi, 0x5384
jl 0x45b28d
push ebx
lea ecx, [ebp - 0x374]
call fcn.0044d129
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x34], 0x4cce
jge 0x45b2df
mov edx, 0xaa27c0
mov ecx, 0xab2718
call fcn.0044e9ba
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45b30a
mov dword [ebp - 0x34], 0xd5feaf86
mov dword [ebp - 0x40], 0x215169ff
mov dword [ebp - 0x3c], 0x32adaa23
mov dword [ebp - 0x14], eax
jmp 0x45b333
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x374]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45b324
mov eax, dword [ebp - 0x374]
mov edx, dword [eax]
lea eax, [edx + edx]
test eax, eax
jne 0x45b34f
test edx, edx
jne 0x45b34f
xor ecx, ecx
jmp 0x45b351
mov ecx, ebx
xor eax, eax
cmp ecx, edx
sete al
xor ecx, ecx
cmp eax, 0x6974edf0
setle cl
imul ecx, edx
test ecx, ecx
jne 0x45b36c
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x374]
cmp dword [eax], 0xd080c170
sbb eax, eax
inc eax
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x40], ecx
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], al
je 0x45b3ad
push eax
push 0x2033
push 0x2626
push 0x1585
push 0x1870
call dword [fcn.00ab53b0]
lea ecx, [ebp - 0x374]
call fcn.0044d1fb
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], al
je 0x45b3d0
push eax
push eax
push 0x2478
push eax
call dword [fcn.00ab5400]
lea ecx, [ebp - 0x860]
call fcn.0044d1fb
push 4
lea ecx, [ebp - 0x6d4]
call fcn.0044d129
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x45b411
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6d4]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45b3f6
xor eax, eax
mov dword [ebp - 0x30], 3
cmp dword [ebp - 0x30], eax
jl 0x45b43d
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45b438
push 0x1240
push 0x16e5
call dword [0xab53e4]
xor eax, eax
dec dword [ebp - 0x30]
jns 0x45b41d
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x6d4]
call fcn.0044d1fb
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x30], 0x9f4288a1
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0xce12
setg cl
mov dword [ebp - 0x30], ecx
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x45b497
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45b494
push 0x21c0
push 0x1b11
push eax
push eax
push eax
call dword [0xab5330]
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jge 0x45b476
mov dword [ebp - 0x3c], 0x250e6da5
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x45b4c2
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd0], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45b4ad
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45b4de
push 0x2248
push 0x116e
push eax
call dword [0xab53bc]
xor eax, eax
mov dword [ebp - 0xd0], eax
jmp 0x45b508
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45b502
push 0x554
push eax
push 0xa4f
call dword [0xab53d8]
xor eax, eax
inc dword [ebp - 0xd0]
cmp dword [ebp - 0xd0], 0x15
je 0x45b4e6
mov dword [ebp - 0x3c], 0xfc4f27d2
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x2c], 0xc20f746e
mov dword [ebp - 0x54], 0xffffffff
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x45b54f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x610], 0x4ec2e0cf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45b536
xor eax, eax
mov dword [ebp - 0x20], 3
cmp dword [ebp - 0x20], eax
jl 0x45b576
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + eax*4 - 0x610]
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x610], ecx
dec dword [ebp - 0x20]
jns 0x45b55b
xor eax, eax
mov dword [ebp - 0x20], 0xb
cmp dword [ebp - 0x20], 0xffffffe8
jge 0x45b937
mov dword [ebp - 0x4c], 0xffffffff
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x44], 0xfffffff9
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0x11
jle 0x45b92f
mov dword [ebp - 0x34], 0x1d3d
cmp dword [ebp - 0x34], 0x2065
jle 0x45b641
mov edx, eax
mov dword [ebp - 0x14], edx
jmp 0x45b5c2
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x45b5cb
xor eax, eax
mov esi, eax
jmp 0x45b5d1
xor eax, eax
mov edi, eax
mov ebx, ecx
mov ecx, esi
sar ebx, cl
mov eax, ebx
mov ecx, edi
shl eax, cl
or eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xc90]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc90]
call fcn.0044d505
inc edi
cmp edi, 0x7bac
mov edx, dword [ebp - 0x14]
jl 0x45b5d9
inc esi
cmp esi, 0x67e7
mov ecx, dword [ebp - 0x30]
jl 0x45b5cf
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x5e57
jl 0x45b5c9
inc edx
mov dword [ebp - 0x14], edx
cmp edx, 0x734f
jl 0x45b5c0
xor ebx, ebx
inc ebx
mov dword [ebp - 0x48], 0x80d416db
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x34], 0x1cb0
jge 0x45b663
push 0xaa2840
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45b68e
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0xfffffff7
jne 0x45b901
mov dword [ebp - 0x18], 0xfffffff9
mov dword [ebp - 0x30], 0xcd329b3a
cmp dword [ebp - 0x18], eax
je 0x45b7b5
mov dword [ebp - 0x38], 0xfffffffb
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x40], 0x35a02a90
mov dword [ebp - 0x18], 0xc
jmp 0x45b738
mov dword [ebp - 0x40], 0xac7eb236
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x4c]
cmp eax, 6
setne cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0x30]
test eax, eax
jne 0x45b730
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ebp - 0x14], eax
xor eax, eax
cmp dword [ebp - 0x48], ebx
jb 0x45b715
cmp dword [ebp - 0x40], eax
je 0x45b715
cmp dword [ebp - 0x4c], eax
je 0x45b715
mov eax, ebx
lea ecx, [eax + 0x1ca7a35e]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setg dl
neg edx
mov dword [ebp - 0x50], edx
jne 0x45b730
xor eax, eax
jmp 0x45b732
mov eax, ebx
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
xor ecx, ecx
cmp dword [ebp - 0x18], 0x1a
jg 0x45b6d6
mov eax, dword [ebp - 0x30]
test eax, eax
setle cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setg dl
sub edx, 0xb458
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ecx
setl dl
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x8a746c20
sbb edx, edx
neg edx
imul edx, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x48]
imul edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
inc edx
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x40], ecx
jmp 0x45b8c9
mov dword [ebp - 0x34], 0x639d
cmp dword [ebp - 0x34], 0x6627
jle 0x45b81d
push eax
call dword [0xab5090]
xor edi, edi
xor esi, esi
lea eax, [esi + edi]
cdq
push edx
push eax
lea ecx, [ebp - 0xe04]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xe04]
call fcn.0044d505
inc esi
cmp esi, 0x640
jl 0x45b7d0
inc edi
cmp edi, 0x7898
jl 0x45b7ce
xor eax, eax
push eax
push ebx
push eax
push eax
call dword [0xab52c8]
mov dword [ebp - 0x40], 0xb4e60d2e
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x34], 0x60d0
jge 0x45b83f
push 0xaa2890
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45b86a
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x50], 0x1f101fbe
cmp dword [ebp - 0x30], eax
jne 0x45b8ff
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0xfffffffd
setle cl
imul eax, ecx, 9
test eax, eax
jne 0x45b894
cmp dword [ebp - 0x48], eax
je 0x45b896
mov eax, ebx
lea ecx, [eax + 0xe1ab]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, ebx
setge cl
imul ecx, dword [ebp - 0x608]
cmp ecx, 2
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x28]
imul eax, ecx
mov dword [ebp - 0x50], eax
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x45b8d7
cmp dword [ebp - 0x48], eax
mov ecx, ebx
jne 0x45b8d9
mov ecx, eax
mov eax, dword [ebp - 0x610]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], 0x7cfeb45d
dec dword [ebp - 0x48]
xor eax, eax
jmp 0x45b69b
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45b925
push 0x1f32
push eax
push 0x14a4
push 0x23c7
push 0x2580
call dword [fcn.00ab50ac]
inc dword [ebp - 0x4c]
xor eax, eax
jmp 0x45b59b
dec dword [ebp - 0x20]
jmp 0x45b57d
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x18], 0x2c70bb74
mov dword [ebp - 0x48], 7
mov dword [ebp - 0x4c], 0xa644184e
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jge 0x45b976
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x84], 0x8206
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x45b95e
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x45b994
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xb3c], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x45b97f
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x45bc96
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x40], 0xd93cbfb4
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 0xffffffff
push ebx
lea ecx, [ebp - 0x878]
call fcn.0044d129
mov dword [ebp - 0x14], 0
jmp 0x45b9eb
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x878]
mov dword [eax + ecx*4], 0xe46ed4d3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45b9d8
mov eax, dword [ebp - 0x18]
xor edi, edi
cmp dword [ebp + eax*4 - 0x84], edi
je 0x45bb51
mov dword [ebp - 0x30], 0x29478c9d
mov dword [ebp - 0x34], 0x4829
cmp dword [ebp - 0x34], 0x48f0
jle 0x45ba6f
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + ebx]
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xcc0]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xcc0]
call fcn.0044d505
inc esi
cmp esi, 0x697d
jl 0x45ba1f
inc edi
cmp edi, 0x70f8
jl 0x45ba1d
inc ebx
cmp ebx, 0x248f
jl 0x45ba1b
xor ebx, ebx
inc ebx
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x34], 0x466c
jge 0x45ba8a
push 0xaa2914
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45bab5
mov dword [ebp - 0x14], eax
jmp 0x45bacb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6f0], 0x1c2a9118
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45baba
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x84]
cmp dword [ebp - 0x30], 0
je 0x45baf3
mov eax, dword [ebp - 0x18]
xor edi, edi
cmp dword [ebp + eax*4 - 0x84], edi
je 0x45baf3
mov eax, ebx
jmp 0x45baf5
xor eax, eax
add eax, 0x1a81
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x84]
cmp dword [ebp - 0x34], eax
jl 0x45bb1b
xor eax, eax
cmp dword [ebp - 0x30], eax
mov ecx, eax
je 0x45bb1d
mov ecx, ebx
mov dword [ebp - 0x2c], 0xfffffffb
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov dword [ebp - 0x6ec], ecx
jmp 0x45bc81
mov dword [ebp - 0x34], 0xfffffff9
mov dword [ebp - 0x44], 0xffff
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x45bb7f
xor edi, edi
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7fc], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45bb6b
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], eax
jg 0x45bc7e
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x38], 0x11ee
cmp dword [ebp - 0x38], 0x157d
jle 0x45bbf1
mov esi, eax
mov dword [ebp - 0x34], eax
mov edi, esi
mov ebx, 0x59d5
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xd80]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd80]
call fcn.0044d505
dec edi
dec ebx
jne 0x45bbae
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x31f6
jl 0x45bba7
inc ebx
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x40], 0
jne 0x45bc0c
mov eax, dword [ebp - 0x18]
xor edi, edi
cmp dword [ebp + eax*4 - 0x84], edi
jne 0x45bc0c
xor ecx, ecx
jmp 0x45bc0e
mov ecx, ebx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
cmp ecx, 7
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x4c], 0x5f8a4198
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x38], 0xee0
jge 0x45bc4d
push 0xaa2948
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45bc74
inc dword [ebp - 0x2c]
xor eax, eax
jmp 0x45bb82
inc dword [ebp - 0x44]
lea ecx, [ebp - 0x878]
call fcn.0044d1fb
dec dword [ebp - 0x18]
xor eax, eax
jmp 0x45b997
mov dword [ebp - 0x4c], eax
jmp 0x45bcd3
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45bcaf
push eax
push eax
push eax
call dword [fcn.00ab52e8]
xor eax, eax
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45bcd0
push eax
push 0x721
push 0x1f55
push 0x1cdf
call dword [fcn.00ab50f0]
xor eax, eax
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffed
jle 0x45bc9b
mov dword [ebp - 0x3c], 0xecf4a416
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 0x14], 5
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x54], 5
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x38], 0x22f7
cmp dword [ebp - 0x38], 0x2698
jle 0x45bd77
mov ebx, eax
jmp 0x45bd19
xor eax, eax
mov esi, eax
jmp 0x45bd1f
xor eax, eax
mov edi, eax
mov dword [ebp - 0x34], 0xfd7
mov eax, ebx
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xcf0]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xcf0]
call fcn.0044d505
add edi, esi
dec dword [ebp - 0x34]
jne 0x45bd28
inc esi
cmp esi, 0x4e4c
jl 0x45bd1d
inc ebx
cmp ebx, 0x67b8
jl 0x45bd17
xor ebx, ebx
inc ebx
mov dword [ebp - 0x58], 5
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x38], 0x21e7
jge 0x45bd99
push 0xaa29a0
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45bdc0
push 0xfffffffffffffffa
pop edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x40], 0x65835a7a
push 3
lea ecx, [ebp - 0x564]
call fcn.0044d129
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x38], 0xd734
mov dword [ebp - 0x44], 0x1c19cd89
mov dword [ebp - 0x48], 0xfffffffe
mov dword [ebp - 0x20], 0
jmp 0x45be0c
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x120], 0x722ba7b7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x45bdfb
mov dword [ebp - 0x20], 0
jmp 0x45be2d
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x564]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x45be1a
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, 0x8f6c218e
setne cl
sub ecx, 0xb4ef
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x252c
setne al
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x58]
sub ecx, dword [ebp - 0x30]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0xffffffff
setge al
cmp eax, dword [ebp - 0x40]
je 0x45be97
xor eax, eax
cmp dword [ebp - 0x50], eax
mov esi, eax
je 0x45be99
mov esi, ebx
mov edx, dword [ebp - 0x564]
mov eax, dword [edx + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp esi, eax
setne cl
mov eax, dword [ebp - 0x34]
inc dword [edx + 4]
xor esi, esi
cmp eax, ecx
jne 0x45bec0
inc esi
mov eax, esi
jmp 0x45bec3
xor eax, eax
inc esi
mov edx, dword [ebp - 0x38]
add edx, eax
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x120]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x54]
neg eax
sbb eax, eax
neg eax
add eax, 0xfffffffb
je 0x45befc
cmp dword [ebp - 0x48], 0
je 0x45befc
mov ecx, esi
jmp 0x45befe
xor ecx, ecx
mov eax, dword [ebp - 0x44]
imul eax, ecx
mov dword [ebp - 0x58], eax
lea ecx, [ebp - 0x564]
call fcn.0044d1fb
push esi
lea ecx, [ebp - 0x710]
call fcn.0044d129
mov dword [ebp - 0x4c], 0xfffffff7
push 2
lea ecx, [ebp - 0x38c]
call fcn.0044d129
mov dword [ebp - 0x2c], 0x7684abf0
mov dword [ebp - 0x24c], 2
mov dword [ebp - 0x248], 2
mov dword [ebp - 0x244], 2
mov dword [ebp - 0x240], 2
mov dword [ebp - 0x40], 0xf0d30663
mov dword [ebp - 0x20], 0
jmp 0x45bf82
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x42c], 0x624039b6
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x45bf71
mov dword [ebp - 0x20], 0
jmp 0x45bfa1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x45bf91
mov dword [ebp - 0x4c], 0
jmp 0x45bfe3
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x34], 0xc427
mov dword [ebp - 0x14], 0
jmp 0x45bfd8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x80c], 0xa2961c0f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x45bfc7
inc dword [ebp - 0x34]
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 2
jle 0x45bfb0
mov eax, dword [ebp - 0x424]
cmp dword [ebp - 0x4c], 0
je 0x45c004
mov dword [ebp - 0x34], 0xd1f2e966
inc dword [ebp - 0x34]
jmp 0x45c135
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x14], 0x55f1bb13
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, 7
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x428]
imul eax, ecx, 0xfffd
cmp eax, dword [ebp - 0x4c]
je 0x45c048
xor eax, eax
cmp dword [ebp - 0x30], eax
mov ecx, eax
je 0x45c04a
mov ecx, esi
mov esi, dword [ebp - 0x38c]
mov dword [esi + 4], ecx
neg ecx
xor eax, eax
cmp ecx, 0x4549773c
setg al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x428]
imul eax, eax, 6
mov edx, dword [ebp - 0x4c]
sub edx, eax
mov eax, dword [ebp - 0x248]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0xffffffff
jne 0x45c0c9
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x45c0c1
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 0
je 0x45c0a5
push eax
call dword [fcn.00ab5404]
xor eax, eax
mov dword [ebp - 0x4c], 0xfffffffc
jmp 0x45c0b8
mov dword [ebp - 0x14], 5
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 5
jge 0x45c0ae
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 5
jl 0x45c093
jmp 0x45c12c
mov dword [ebp - 0x34], 0xfffffffe
mov eax, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp dword [esi + 4], 1
setg dl
mov eax, dword [ebp - 0x248]
xor ecx, ecx
cmp eax, edx
setne cl
mov edx, dword [ebp - 0x40]
add edx, ecx
mov eax, dword [ebp - 0x244]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, 3
sbb eax, eax
neg eax
mov ecx, 0xdb81fdf2
sub ecx, eax
xor edx, edx
cmp ecx, 2
setl dl
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, dword [ebp - 0x38c]
mov dword [eax], ecx
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], eax
xor esi, esi
inc esi
lea ecx, [ebp - 0x38c]
call fcn.0044d1fb
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x34]
add eax, 0x37bc
mov dword [ebp - 0x14], eax
je 0x45c169
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
jmp 0x45c218
mov dword [ebp - 0x40], 0xca9869ec
mov dword [ebp - 0x38], 0x1595
cmp dword [ebp - 0x38], 0x1820
jle 0x45c1cd
xor edi, edi
xor esi, esi
mov eax, esi
xor eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xb94]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044d009
push eax
call fcn.004a7c67
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb94]
call fcn.0044d505
inc esi
cmp esi, 0x4fa5
jl 0x45c184
inc edi
cmp edi, 0x35a
jl 0x45c182
xor esi, esi
inc esi
push 0xfffffffffffffffa
pop edi
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x38], 0x1391
jge 0x45c1ee
push 0xaa29e8
call fcn.004a7c67
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45c218
mov dword [ebp - 0x48], 0xfffffff9
mov dword [ebp - 0x34], 0xf4c59cdc
mov dword [ebp - 0x14], 0x6b8d9637
mov dword [ebp - 0x2c], 0xfffffff6
push 3
lea ecx, [ebp - 0x15c]
call fcn.0044d129
mov dword [ebp - 0x44], 0xc4e
mov dword [ebp - 0x38], 0x77fb
cmp dword [ebp - 0x38], 0x7b4f
jle 0x45c2a9
push 0x13b2
push 0
call dword [fcn.00ab5238]
xor ebx, ebx
mov dword [ebp - 0x34], ebx
xor esi, esi
mov eax, ebx
cdq
idiv esi
mov edi, edx
mov ebx, 0x366c
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xab2718
call fcn.0044d014
dec edi
dec ebx
jne 0x45c278
inc esi
cmp esi, 0x2c3e
mov ebx, dword [ebp - 0x34]
jl 0x45c26c
inc ebx
mov dword [ebp - 0x34], ebx
cmp ebx, 0x4fd5
jl 0x45c26a
xor esi, esi
inc esi
push 0xfffffffffffffffa
pop edi
mov dword [ebp - 0x40], 0x1aa12afd
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x38], 0x751f
jge 0x45c2cf
mov edx, 0xaa2a34
mov ecx, 0xab2718
call fcn.0044e9ba
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45c2fd
mov dword [ebp - 0x14], eax
jmp 0x45c311
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x15c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45c302
mov edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x48]
sub ecx, dword [ebp - 0x48]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setle dl
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp edx, eax
setg cl
xor eax, eax
add ecx, 0x2728
jne 0x45c363