Function at 0x45c7aa
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4b81c5
call fcn.004b7628
sub esp, 0x2b4
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x2c], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x28], ebx
jmp 0x45c7e9
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x64], 0xfffffffa
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x45c7db
mov dword [ebp - 0x60], ebx
push 8
xor edi, edi
pop esi
inc edi
cmp dword [ebp - 0x60], 0xffffffe2
jne 0x45c8d0
mov dword [ebp - 0x14], 0x74aa0d72
movdqa xmm0, xmmword [0xa93210]
movdqu xmmword [ebp - 0x1d8], xmm0
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x1c8]
push eax
lea eax, [ebp - 0x1d8]
push eax
push ebx
lea ecx, [ebp - 0xa8]
call fcn.0040deff
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
jl 0x45c88a
mov ecx, dword [ebp - 0x14]
sub ecx, esi
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, esi
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setl dl
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x64]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, 0x2d3f
mov eax, ebx
jle 0x45c88c
mov eax, edi
add eax, 0xffff0001
jne 0x45c89a
cmp dword [ebp - 0x14], ebx
mov eax, ebx
je 0x45c89c
mov eax, edi
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x60]
xor edx, edx
cmp eax, dword [ecx + 4]
setg dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0xa8]
call fcn.0040af7d
dec dword [ebp - 0x60]
jmp 0x45c7f8
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x45c8df
push ebx
call dword [0xaa8590]
mov eax, dword [0xaa6240]
test al, 1
jne 0x45c95f
or eax, edi
mov dword [0xaa6240], eax
mov dword [0xaa6270], ebx
mov dword [0xaa6274], ebx
push ebx
push ebx
call fcn.0040d408
mov dword [0xaa6270], eax
mov dword [0xaa6278], ebx
mov dword [0xaa6280], ebx
mov dword [0xaa628c], 0x3f800000
mov dword [ebp - 0xc8], eax
mov dword [0xaa627c], ebx
lea eax, [ebp - 0xc8]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1c8]
push eax
mov ecx, 0xaa6278
call fcn.0040d1ad
mov dword [0xaa6284], 7
mov dword [0xaa6288], esi
push 0x4b8b26
call fcn.004a1e5d
pop ecx
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x28], edi
jmp 0x45c98a
mov dword [ebp - 0x2c], 0xc19c5a65
mov dword [ebp - 0x2c], 0xffffffff
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x45c987
call dword [0xaa83b4]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x17
jne 0x45c96b
imul eax, dword [ebp - 0x54], 0x2710
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x1c], 0x6847
push 3
lea ecx, [ebp - 0xe4]
call fcn.0040aeab
push 4
lea ecx, [ebp - 0x174]
call fcn.0040aeab
push edi
lea ecx, [ebp - 0x98]
call fcn.0040aeab
mov dword [ebp - 0x3c], 0xd42a
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x40], 4
mov dword [ebp - 0x14], 0x2535b5b0
mov dword [ebp - 0x40], 0xc525ac89
mov dword [ebp - 0x20], ebx
jmp 0x45c9fe
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xe4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x45c9ee
mov dword [ebp - 0x20], ebx
jmp 0x45ca18
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x174]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x45ca09
mov dword [ebp - 0x20], ebx
jmp 0x45ca36
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], 0x12def906
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x45ca23
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x1c]
dec eax
neg eax
sbb eax, eax
neg eax
xor ecx, ecx
cmp eax, dword [esi + 8]
setl cl
xor edx, edx
mov eax, dword [ebp - 0xe4]
cmp ecx, dword [eax + 4]
setle dl
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x30], eax
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x1c]
sub edx, eax
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x98]
mov dword [eax], edx
mov edx, dword [esi + 8]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setge cl
xor eax, eax
cmp ecx, edx
setle al
imul eax, edx
test eax, eax
je 0x45cadb
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x45caba
push ebx
push ebx
push 0x194a
push ebx
call dword [0xaa8374]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x45cc61
push 0x68f
push 0x15cb
call dword [0xaa850c]
jmp 0x45cc61
push 2
lea ecx, [ebp - 0x144]
call fcn.0040aeab
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x44], 0xe18e6f96
mov dword [ebp - 0x28], ebx
jmp 0x45cb0a
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x144]
mov dword [eax + ecx*4], 0xb1ad
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x45caf7
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x44], eax
xor ecx, ecx
cmp dword [eax + 4], ebx
sete cl
mov eax, dword [ebp - 0x98]
add ecx, dword [eax]
mov eax, dword [ebp - 0x2c]
sub ecx, eax
je 0x45cb4a
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], edi
jne 0x45cb4d
mov dword [ebp - 0x24], ebx
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 8], eax
mov dword [ebp - 0x40], 0xfffffffa
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp eax, dword [ecx + 8]
setg dl
mov eax, dword [ebp - 0x98]
mov esi, dword [eax]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
cmp ecx, dword [ebp - 0x24]
setne dl
mov eax, dword [ebp - 0x44]
add edx, dword [eax + 4]
mov eax, dword [ebp - 0x38]
add edx, dword [eax + 8]
neg edx
neg edx
sbb edx, edx
neg edx
xor eax, eax
cmp edx, edi
setl al
xor ecx, ecx
cmp esi, eax
setge cl
sub ecx, esi
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x24], 0x4b72
cmp dword [ebp - 0x24], 0x4bc8
jle 0x45cc10
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x40], ebx
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x220]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45cbe5
mov eax, dword [eax]
push eax
call fcn.004a1e87
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x220]
call fcn.0040b459
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, 0x6c61
jl 0x45cbcb
inc esi
cmp esi, 0x3ae
jl 0x45cbc6
mov eax, dword [ebp - 0x30]
mov dword [eax + 8], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0x47aa
jge 0x45cc2d
push 0xa89298
call fcn.004a1e87
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45cc56
lea ecx, [ebp - 0x144]
call fcn.0040af7d
lea ecx, [ebp - 0x98]
call fcn.0040af7d
lea ecx, [ebp - 0x174]
call fcn.0040af7d
lea ecx, [ebp - 0xe4]
call fcn.0040af7d
lea eax, [ebp - 0x58]
push eax
call fcn.0045e8e6
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x28], 0x648261f
mov dword [ebp - 0x14], 0x1520
cmp dword [ebp - 0x14], 0x16ce
jle 0x45cd36
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov ecx, ebx
mov dword [ebp - 0x24], ecx
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x3c], eax
mov esi, ebx
xor eax, ecx
mov dword [ebp - 0x2c], eax
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x250]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45cce3
mov eax, dword [eax]
push eax
call fcn.004a1e87
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x250]
call fcn.0040b459
inc esi
cmp esi, 0x7875
mov eax, dword [ebp - 0x2c]
jl 0x45ccc9
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x3aa6
mov eax, dword [ebp - 0x3c]
jl 0x45ccc2
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x425c
mov eax, dword [ebp - 0x28]
jl 0x45ccb5
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x2a58
jl 0x45ccb0
mov byte [ebp - 0x15], bl
mov dword [ebp - 4], 2
cmp dword [ebp - 0x14], 0x1491
jge 0x45cd54
push 0xa892e0
call fcn.004a1e87
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45cd7d
cmp byte [ebp - 0x15], 0
je 0x45cd95
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xaa8048]
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 0xffffffe6
jge 0x45ceac
mov dword [ebp - 0x20], 0x57d2
cmp dword [ebp - 0x20], 0x59ad
jle 0x45ce14
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 0x41bd
mov esi, ebx
mov edi, ebx
mov ebx, eax
mov ecx, esi
shl ebx, cl
mov eax, edi
and eax, ebx
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc edi
cmp edi, 0x23ab
jl 0x45cdcb
inc esi
cmp esi, 0x646
push 0
pop ebx
mov eax, dword [ebp - 0x14]
jl 0x45cdc3
dec eax
mov dword [ebp - 0x14], eax
dec dword [ebp - 0x24]
jne 0x45cdc1
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x7874
jl 0x45cdb7
call dword [0xaa8294]
xor edi, edi
inc edi
mov dword [ebp - 0x1c], 0x925b0e44
mov dword [ebp - 4], 4
cmp dword [ebp - 0x20], 0x567f
jge 0x45ce3a
mov edx, 0xa89328
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45ce63
push 8
pop esi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x1c], 0xffffffe7
jmp 0x45ce8a
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45ce87
push 0x6bb
push ebx
call dword [0xaa84a0]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff5
jne 0x45ce72
mov dword [ebp - 0x1c], ebx
jmp 0x45ce9e
mov dword [ebp - 0x24], esi
inc dword [ebp - 0x24]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xe
jge 0x45ce95
dec dword [ebp - 0x28]
jmp 0x45cd98
cmp dword [ebp - 0x40], 0
je 0x45cfaa
push 0xfffffffffffffff9
pop eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], eax
push 4
lea ecx, [ebp - 0x12c]
call fcn.0040aeab
mov dword [ebp - 0x28], ebx
jmp 0x45cee4
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x12c]
mov dword [eax + ecx*4], 0xf992db75
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x45ced1
cmp dword [ebp - 0x1c], ebx
mov ecx, ebx
je 0x45cef3
mov ecx, edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], 5
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x1c]
jne 0x45cf0c
cmp dword [ebp - 0x28], ebx
mov eax, edi
jne 0x45cf0e
mov eax, ebx
add eax, ecx
je 0x45cf81
cmp dword [ebp - 0x1c], ebx
je 0x45cf81
mov dword [ebp - 0x14], 0xa2215256
mov dword [ebp - 0x24], 0xa48a2b8e
mov dword [ebp - 0x50], 0xf8abff5e
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0x9734
jg 0x45cf75
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x389
setg cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
imul eax, dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jne 0x45cf75
cmp dword [ebp - 0x1c], ebx
je 0x45cf77
mov ebx, edi
mov eax, dword [ebp - 0x12c]
mov dword [eax], ebx
jmp 0x45cf91
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45cf91
push ebx
call dword [0xaa8304]
lea ecx, [ebp - 0x12c]
call fcn.0040af7d
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xd4], eax
jmp 0x45e858
mov dword [ebp - 0x34], 0xac8b13ec
mov dword [ebp - 0x34], 0xfcb50bf3
mov dword [ebp - 0x34], 0x60f951fe
mov dword [ebp - 0x34], 0x7a61eefb
mov dword [ebp - 0x24], 0xcc9ca319
mov dword [ebp - 0x20], ebx
jmp 0x45cfe3
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x114], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x45cfd2
mov dword [ebp - 0x20], ebx
jmp 0x45cfff
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x19c], 0x5b263d18
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x45cfee
inc dword [ebp - 0x24]
mov dword [ebp - 0x14], 0x1666
cmp dword [ebp - 0x14], 0x1777
jle 0x45d07f
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x30], 0x451c
mov edi, ebx
mov ebx, dword [ebp - 0x24]
mov eax, edi
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc edi
cmp edi, 0x74e8
jl 0x45d02d
add ebx, esi
mov dword [ebp - 0x24], ebx
dec dword [ebp - 0x30]
push 0
pop ebx
jne 0x45d028
inc esi
cmp esi, 0x2704
mov edi, dword [ebp - 0x28]
jl 0x45d01e
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x4bd0
jl 0x45d01c
push 0xc86
push 0x19d9
call dword [0xaa811c]
xor edi, edi
inc edi
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x114], eax
mov dword [ebp - 4], 6
cmp dword [ebp - 0x14], 0x151a
jge 0x45d0aa
mov edx, 0xa89380
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45d0d3
push 8
pop esi
mov eax, dword [0xaa6240]
test al, 2
jne 0x45d157
or eax, 2
mov dword [0xaa6240], eax
mov dword [0xaa6250], ebx
mov dword [0xaa6254], ebx
push ebx
push ebx
call fcn.0040d408
mov dword [0xaa6250], eax
mov dword [0xaa6258], ebx
mov dword [0xaa6260], ebx
mov dword [0xaa626c], 0x3f800000
mov dword [ebp - 0xb8], eax
mov dword [0xaa625c], ebx
lea eax, [ebp - 0xb8]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1a0]
push eax
mov ecx, 0xaa6258
call fcn.0040d1ad
mov dword [0xaa6264], 7
mov dword [0xaa6268], esi
push 0x4b8b21
call fcn.004a1e5d
pop ecx
push 4
lea ecx, [ebp - 0x80]
call fcn.0040aeab
mov dword [ebp - 0x24], 0x2ca7
cmp dword [ebp - 0x24], 0x2f04
jle 0x45d1a8
push ebx
push ebx
push ebx
push ebx
call dword [0xaa82a8]
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov eax, esi
mov ecx, ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc ebx
cmp ebx, 0x1e5e
jl 0x45d180
inc esi
cmp esi, 0x3043
push 0
pop ebx
jl 0x45d17d
mov dword [ebp - 0x14], 0x8142c78e
mov dword [ebp - 4], 8
cmp dword [ebp - 0x24], 0x29db
jge 0x45d1ce
mov edx, 0xa893c0
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45d1f7
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x28], 0xfffffffa
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], 0xd767c8fa
mov dword [ebp - 0x3c], 0xef5379a1
mov dword [ebp - 0x2c], 0x75b167d3
mov dword [ebp - 0x30], 0x7750
cmp dword [ebp - 0x30], 0x7899
jle 0x45d267
push 0x187b
call dword [0xaa8470]
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x2c], esi
mov ebx, 0x73be
mov eax, esi
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
dec esi
dec ebx
jne 0x45d245
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x5ae1
jl 0x45d23d
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x30], 0x73ec
jge 0x45d286
mov edx, 0xa893dc
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45d2af
mov dword [ebp - 0x20], ebx
jmp 0x45d2c0
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x45d2b4
mov dword [ebp - 0x20], ebx
jmp 0x45d2d9
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x4c], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x45d2cb
mov dword [ebp - 0x4c], ebx
mov esi, dword [ebp - 0x80]
xor eax, eax
cmp dword [esi + 4], eax
sete al
xor ecx, ecx
cmp eax, dword [esi + 4]
setl cl
sub ecx, dword [esi + 8]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4c]
add eax, dword [esi + 4]
je 0x45d30c
cmp dword [ebp - 0x4c], ebx
mov eax, edi
jne 0x45d30e
mov eax, ebx
xor ecx, ecx
cmp eax, 0xfffffffa
setl cl
xor eax, eax
cmp ecx, dword [esi + 4]
setle al
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x80]
cmp ecx, dword [eax]
push 0
pop eax
setge al
imul eax, edx
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, dword [esi + 4]
setle cl
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], ebx
jne 0x45d35f
cmp dword [ebp - 0x28], ebx
mov eax, ebx
je 0x45d361
mov eax, edi
cmp dword [esi + 4], eax
jne 0x45d36d
cmp dword [ebp - 0x3c], ebx
mov ecx, edi
jne 0x45d36f
mov ecx, ebx
xor eax, eax
cmp ecx, dword [esi + 4]
setl al
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x45d3f2
mov dword [ebp - 0x24], 0x164c1161
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x45d3e6
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x45d3e1
mov dword [ebp - 0x2c], 0x89b05f67
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x80]
imul eax, dword [eax + ecx*4 + 4], 0x16618
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x24]
cmp dword [ecx + edx*4 + 0xc], eax
push 0
pop edx
setg dl
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x4c]
xor ecx, ecx
cmp eax, edx
setg cl
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x4c], ecx
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x1c]
jns 0x45d399
dec dword [ebp - 0x14]
jns 0x45d391
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x4c]
dec dword [ebp - 0x20]
jns 0x45d382
lea ecx, [ebp - 0x80]
call fcn.0040af7d
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x74], xmm0
lea eax, [ebp - 0x54]
push eax
call fcn.0045e948
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x30], 0xc6fe23a2
mov dword [ebp - 0x1c], ebx
jmp 0x45d4a8
mov dword [ebp - 0x14], 0xeede0b40
mov dword [ebp - 0x20], 0x4320e32c
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x14], 0x1a
jmp 0x45d49f
mov dword [ebp - 0x20], 0xffffffff
cmp dword [ebp - 0x20], ebx
je 0x45d47e
mov eax, dword [ebp - 0x20]
xor ecx, ecx
test eax, eax
setns cl
cmp ecx, 0x2568
jge 0x45d469
cmp dword [ebp - 0x14], ebx
mov edx, ebx
je 0x45d46b
mov edx, edi
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, edx
setl cl
or eax, 0xffffffff
sub eax, ecx
mov ecx, edi
jne 0x45d480
mov ecx, ebx
mov eax, dword [ebp - 0x14]
sub ecx, eax
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe3
jne 0x45d444
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 6
jge 0x45d426
cmp byte [ebp + 0xc], 0
jne 0x45d4c2
cmp dword [ebp - 0x28], 0
jne 0x45daf7
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x2c], 0xfffffff6
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0xc8cbf698
push 2
lea ecx, [ebp - 0x1ac]
call fcn.0040aeab
mov dword [ebp - 0x34], 0xab92a1dd
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0x1c], 0x7252
cmp dword [ebp - 0x1c], 0x7539
jle 0x45d5aa
push ebx
push 0x2031
call dword [0xaa844c]
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x2c], ebx
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x3c], eax
mov esi, ebx
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x298]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45d565
mov eax, dword [eax]
push eax
call fcn.004a1e87
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x298]
call fcn.0040b459
inc esi
cmp esi, 0x427e
mov eax, dword [ebp - 0x3c]
jl 0x45d548
mov esi, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x56b7
mov eax, dword [ebp - 0x30]
jl 0x45d53b
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x2ae0
jl 0x45d536
push ebx
push ebx
call dword [0xaa8354]
mov dword [ebp - 0x14], ebx
jmp 0x45d5c2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1ac]
mov dword [eax + ecx*4], 0x5d2300b6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45d5af
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x1c], 0x6eec
jge 0x45d5e3
push 0xa89438
call fcn.004a1e87
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45d60c
push 8
pop esi
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], esi
jg 0x45d84c
push 3
lea ecx, [ebp - 0x8c]
call fcn.0040aeab
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x38], 0x3cc9
mov dword [ebp - 0x2c], 0xfffffff7
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0x1494d85
mov dword [ebp - 0x34], 0x3200138d
mov dword [ebp - 0x34], 0x54fd57ec
mov dword [ebp - 0x34], 0x907f7a79
mov dword [ebp - 0x34], 0x17898a80
mov dword [ebp - 0x14], 0x7f45
cmp dword [ebp - 0x14], 0x8166
jle 0x45d6c8
push ebx
call dword [0xaa8138]
mov ecx, ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov eax, esi
and eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x238]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45d699
mov eax, dword [eax]
push eax
call fcn.004a1e87
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x238]
call fcn.0040b459
inc esi
cmp esi, 0x621f
mov ecx, dword [ebp - 0x30]
jl 0x45d67d
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x4e8a
jl 0x45d67b
push 8
pop esi
push edi
lea ecx, [ebp - 0x1c4]
call fcn.0040aeab
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x14], 0x7e4f
jge 0x45d6ef
push 0xa8947c
call fcn.004a1e87
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45d71b
mov dword [ebp - 0x1c], ebx
jmp 0x45d733
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], 0xe75cb554
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x45d720
mov dword [ebp - 0x1c], ebx
jmp 0x45d751
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c4]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x45d73e
cmp dword [ebp - 0x20], ebx
jne 0x45d7f5
xor ecx, ecx
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 8], edi
sete cl
xor eax, eax
cmp ecx, 0x5088
setne al
imul eax, eax, 0x5c6a
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0xfffffff8
setl cl
xor edx, edx
mov eax, dword [ebp - 0x8c]
cmp dword [eax], ecx
setle dl
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp dword [ebp - 0x2c], eax
sete dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, dword [ebp - 0x20]
jne 0x45d7c2
cmp dword [ebp - 0x20], ebx
mov ecx, edi
jne 0x45d7c4
mov ecx, ebx
mov eax, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
inc edx
mov ecx, dword [ebp - 0x8c]
sub edx, dword [ecx]
cmp edx, 0xe13c
jl 0x45d7fb
mov edx, ebx
jmp 0x45d7fd
mov ecx, dword [ebp - 0x8c]
mov edx, edi
xor eax, eax
cmp edx, dword [ecx + 4]
setge al
cmp eax, dword [ebp - 0x38]
jl 0x45d80d
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x10c]
lea ecx, [ebp - 0x1c4]
call fcn.0040af7d
lea ecx, [ebp - 0x8c]
call fcn.0040af7d
inc dword [ebp - 0x20]
jmp 0x45d612
lea ecx, [ebp - 0x1ac]
call fcn.0040af7d
lea eax, [ebp - 0x2c0]
push eax
mov dl, byte [ebp + 0xc]
mov ecx, dword [ebp - 0x54]
call fcn.004475c3
pop ecx
mov esi, eax
lea edi, [ebp - 0x74]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
inc edi
mov dword [ebp - 0x1c], edi
push edi
lea ecx, [ebp - 0x150]
call fcn.0040aeab
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x14], ebx
jmp 0x45d8a0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x150]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x45d891
cmp dword [ebp - 0x1c], ebx
je 0x45d96d
mov dword [ebp - 0x34], 0x2f76ec75
mov dword [ebp - 0x14], ebx
jmp 0x45d8cb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x200], 0xc902dafb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45d8ba
mov dword [ebp - 0x1c], 0x1b
cmp dword [ebp - 0x1c], 6
jl 0x45d93f
mov edi, dword [0xaa8138]
mov dword [ebp - 0x34], ebx
push 4
lea ecx, [ebp - 0x198]
call fcn.0040aeab
mov dword [ebp - 0x38], 0xff29
mov dword [ebp - 0x14], ebx
jmp 0x45d913
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x198]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45d900
inc dword [ebp - 0x38]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45d928
push ebx
call edi
lea ecx, [ebp - 0x198]
call fcn.0040af7d
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 6
jge 0x45d8e4
xor edi, edi
inc edi
lea ecx, [ebp - 0x150]
call fcn.0040af7d
cmp byte [ebp + 0xc], 0
je 0x45daf7
cmp dword [ebp - 0x6c], 0
je 0x45daf7
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], edi
jmp 0x45da99
mov dword [ebp - 0x38], 0x80d68f98
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x1c], 0xfffffffd
cmp dword [ebp - 0x1c], 0x19
jl 0x45d93f
mov dword [ebp - 0x24], 0x9bdd7770
push 3
lea ecx, [ebp - 0x138]
call fcn.0040aeab
mov dword [ebp - 0x14], ebx
jmp 0x45d9b4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x138]
mov dword [eax + ecx*4], 0xba5f27a4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45d9a1
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x150]
mov dword [eax], edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setle cl
mov eax, dword [ebp - 0x138]
mov dword [eax + 4], ecx
mov dword [ebp - 0x24], 0x750c
cmp dword [ebp - 0x24], 0x77f3
jle 0x45da18
mov esi, ebx
mov edi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc edi
cmp edi, 0x3530
jl 0x45d9f2
inc esi
cmp esi, 0x4365
jl 0x45d9f0
xor edi, edi
inc edi
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x24], 0x7460
jge 0x45da3d
mov edx, 0xa89498
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45da66
lea ecx, [ebp - 0x138]
call fcn.0040af7d
inc dword [ebp - 0x1c]
jmp 0x45d982
mov dword [ebp - 0x2c], 0xc19c5a65
mov dword [ebp - 0x2c], 0xffffffff
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45da96
call dword [0xaa83b4]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x17
jne 0x45da79
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0x14], 0x90c4d8e5
mov dword [ebp - 0x14], ebx
jmp 0x45dac1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x208], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45dab4
mov dword [ebp - 0x14], ebx
jmp 0x45dae9
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45dae6
push ebx
push 0x2183
push 0x5be
call dword [0xaa8530]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x45dacc
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], 0x13d
cmp dword [ebp - 0x14], 0x45f
jle 0x45db65
mov edi, ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov eax, edi
cdq
idiv esi
mov esi, edx
mov dword [ebp - 0x38], 0x61f9
mov edi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc edi
cmp edi, 0x20e7
jl 0x45db24
dec esi
dec dword [ebp - 0x38]
jne 0x45db22
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x2aad
mov edi, dword [ebp - 0x30]
jl 0x45db14
inc edi
mov dword [ebp - 0x30], edi
cmp edi, 0x5959
jl 0x45db0f
xor edi, edi
inc edi
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x14], 9
jge 0x45db81
mov edx, 0xa89508
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45dbaa
mov dword [ebp - 0x30], 0x3425
cmp dword [ebp - 0x30], 0x37ff
jle 0x45dc27
push ebx
call dword [0xaa82d0]
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x2c], ebx
lea ecx, [esi + edi]
mov edi, eax
shl edi, cl
mov esi, ebx
mov eax, edi
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc esi
cmp esi, 0x5a66
jl 0x45dbdc
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x4373
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
jl 0x45dbd0
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x64f7
jl 0x45dbcb
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x32f5
jl 0x45dbc6
xor edi, edi
inc edi
mov dword [ebp - 0x14], ebx
jmp 0x45dc39
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd8], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x45dc2c
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x30], 0x340c
jge 0x45dc5d
mov edx, 0xa89580
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45dc86
mov dword [ebp - 0x20], 0xfffffffb
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jg 0x45df75
mov dword [ebp - 0x1c], 0xfffffff6
mov dword [ebp - 0x2c], 0x433e
cmp dword [ebp - 0x2c], 0x4439
jle 0x45dd1a
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x38], ecx
mov ebx, dword [ebp - 0x24]
mov eax, esi
cdq
idiv ecx
mov eax, edi
mov ecx, edx
sar eax, cl
or eax, ebx
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
mov ecx, dword [ebp - 0x38]
inc ecx
mov dword [ebp - 0x38], ecx
cmp ecx, 0x4231
jl 0x45dcbf
inc esi
cmp esi, 0x1e31
push 0
pop ebx
jl 0x45dcb7
inc edi
cmp edi, 0x7ab9
jl 0x45dcb5
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x31a0
jl 0x45dcb3
push ebx
push 0x846
call dword [0xaa8478]
xor edi, edi
inc edi
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jg 0x45df03
mov dword [ebp - 0x14], ebx
jmp 0x45dd3c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xfc], 0xfe4b2830
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45dd2b
mov dword [ebp - 0x3c], 0x397e
cmp dword [ebp - 0x3c], 0x3cd7
jle 0x45dd9e
mov eax, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
add eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x280]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45dd73
mov eax, dword [eax]
push eax
call fcn.004a1e87
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x280]
call fcn.0040b459
inc esi
cmp esi, 0x24a7
mov eax, dword [ebp - 0x24]
jl 0x45dd59
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x39b1
jl 0x45dd57
mov dword [ebp - 0xf8], ebx
cmp dword [ebp - 0xf8], ebx
jl 0x45deb7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0xd8], ebx
jne 0x45deb7
mov dword [ebp - 0x44], 0x7340
cmp dword [ebp - 0x44], 0x74a5
jle 0x45de4e
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov dword [ebp - 0x24], ebx
cdq
idiv esi
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 0x80
mov eax, ecx
xor eax, dword [ebp - 0x24]
cdq
push edx
push eax
lea ecx, [ebp - 0x2b0]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45de09
mov eax, dword [eax]
push eax
call fcn.004a1e87
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x2b0]
call fcn.0040b459
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x24], eax
dec dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
jne 0x45ddec
inc esi
cmp esi, 0x1fbd
mov eax, dword [ebp - 0x30]
jl 0x45dddc
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x6d27
jl 0x45ddda
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x77a2
jl 0x45ddd5
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45de68
push 0x8a4
push 0x26fc
push ebx
call dword [0xaa84c4]
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x44], 0x720f
jge 0x45de83
push 0xa89628
call fcn.004a1e87
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45deac
dec dword [ebp - 0xf8]
jmp 0x45dda4
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x3c], 0x369b
jge 0x45ded2
push 0xa895d8
call fcn.004a1e87
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45defb
inc dword [ebp - 0x1c]
jmp 0x45dd1d
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x2c], 0x42da
jge 0x45df22
mov edx, 0xa895a0
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45df4b
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x45df6d
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45df68
push 0x319
push ebx
call dword [0xaa8328]
dec dword [ebp - 0x1c]
jns 0x45df53
inc dword [ebp - 0x20]
jmp 0x45dc90
cmp dword [ebp - 0x28], 0
jne 0x45e62d
cmp dword [ebp - 0x74], 0
jle 0x45e62d
push 2
lea ecx, [ebp - 0xf0]
call fcn.0040aeab
mov dword [ebp - 0x14], 0x2fb5a5ef
mov dword [ebp - 0x34], 0xf446
mov dword [ebp - 0x14], ebx
jmp 0x45dfbc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xf0]
mov dword [eax + ecx*4], 0x13dd33a4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45dfa9
mov esi, dword [ebp - 0xf0]
add esi, 4
mov dword [esi], ebx
cmp dword [esi], 0xfffffff1
jne 0x45e11a
mov dword [ebp - 0x30], 0x690f
mov dword [ebp - 0x2c], 0x27363782
mov dword [ebp - 0x44], 0x1fa0
cmp dword [ebp - 0x44], 0x233d
jle 0x45e071
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov edx, eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x3c], 0x27e4
mov eax, ecx
mov ecx, edx
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x268]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45e02a
mov eax, dword [eax]
push eax
call fcn.004a1e87
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x268]
call fcn.0040b459
mov edx, dword [ebp - 0x2c]
add edx, esi
mov dword [ebp - 0x2c], edx
dec dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
jne 0x45e00c
dec esi
cmp esi, 0xffff8154
mov eax, dword [ebp - 0x24]
jg 0x45e000
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x1c22
jl 0x45dffe
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x1237
jl 0x45dff9
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x44], 0x1dc5
jge 0x45e092
push 0xa8970c
call fcn.004a1e87
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45e0bb
mov eax, dword [ebp - 0x14]
push 8
pop ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0xf0]
add esi, 4
mov edx, dword [ebp - 0x30]
dec edx
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, edx
setne cl
xor eax, eax
cmp ecx, 0x128f3b8c
setne al
xor ecx, ecx
cmp dword [esi], eax
setne cl
xor edx, edx
cmp ecx, 0xffffffff
setg dl
mov eax, dword [ebp - 0x34]
imul eax, edx
xor ecx, ecx
cmp dword [esi], eax
setl cl
mov dword [ebp - 0x2c], ecx
dec dword [esi]
jmp 0x45dfcd
lea ecx, [ebp - 0xf0]
call fcn.0040af7d
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x38], 9
mov dword [ebp - 0x14], ebx
jmp 0x45e146
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x48], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x45e138
mov dword [ebp - 0x48], ebx
cmp dword [ebp - 0x48], 0xb
jl 0x45e333
push 2
lea ecx, [ebp - 0x168]
call fcn.0040aeab
mov dword [ebp - 0x14], 0x9bf39019
push 4
lea ecx, [ebp - 0x120]
call fcn.0040aeab
mov dword [ebp - 0x20], ebx
jmp 0x45e18d
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x168]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x45e17e
mov dword [ebp - 0x20], ebx
jmp 0x45e1ab
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x120]
mov dword [eax + ecx*4], 0x9d66de6b
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x45e198
mov dword [ebp - 0x44], 0x50d2
cmp dword [ebp - 0x44], 0x5412
jle 0x45e225
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov dword [ebp - 0x3c], ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], ebx
lea ecx, [esi + edi]
mov esi, eax
sar esi, cl
mov edi, ebx
mov eax, edi
and eax, esi
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc edi
cmp edi, 0x1778
jl 0x45e1dc
mov esi, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x2c], esi
cmp esi, 0xe3
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
jl 0x45e1d0
inc edi
mov dword [ebp - 0x3c], edi
cmp edi, 0xf4b
jl 0x45e1cb
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x6d26
jl 0x45e1c6
xor edi, edi
inc edi
mov dword [ebp - 0x20], ebx
jmp 0x45e23b
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x9c], 0xa26cdee9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x45e22a
mov dword [ebp - 4], 0x1e
cmp dword [ebp - 0x44], 0x5004
jge 0x45e25f
mov edx, 0xa8975c
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45e288
mov dword [ebp - 0x14], ebx
jmp 0x45e2b1
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45e2ae
push ebx
push 0x1972
push ebx
push 0x11f5
push ebx
push 0x12e0
call dword [0xaa84e0]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x45e28d
mov eax, dword [ebp - 0x168]
cmp dword [eax + 4], ebx
jne 0x45e30c
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jle 0x45e2d3
cmp dword [ebp - 0x48], ebx
mov eax, ebx
je 0x45e2d5
mov eax, edi
xor ecx, ecx
cmp eax, edi
setg cl
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x48]
sub eax, edx
mov ecx, dword [ebp - 0x48]
imul ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x120]
cmp ecx, dword [eax]
setg dl
mov eax, dword [ebp - 0x48]
add eax, edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x9c], ebx
lea ecx, [ebp - 0x120]
call fcn.0040af7d
lea ecx, [ebp - 0x168]
call fcn.0040af7d
inc dword [ebp - 0x48]
jmp 0x45e14e
mov dword [ebp - 0x24], 0x51ac06e3
mov dword [ebp - 0x14], 3
mov dword [ebp - 0x14], 0xfffffff9
cmp dword [ebp - 0x14], 0x12
jle 0x45e38a
mov esi, dword [0xaa8580]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45e381
push 0x251d
push 0x1530
push 0xbde
push 0x151f
push 0x2677
push ebx
push ebx
push ebx
push ebx
push 0x190c
call esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x12
jg 0x45e354
mov byte [ebp - 0x15], bl
mov esi, dword [0xaa83cc]
cmp byte [ebp - 0x15], 0
je 0x45e39e
push ebx
push ebx
push ebx
call esi
movdqa xmm0, xmmword [0xa931c0]
movdqu xmmword [ebp - 0x1f8], xmm0
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x1e8]
push eax
lea eax, [ebp - 0x1f8]
push eax
push ebx
lea ecx, [ebp - 0xb4]
call fcn.0040deff
mov dword [ebp - 0x14], 0xb66bafcb
push 4
lea ecx, [ebp - 0x180]
call fcn.0040aeab
mov dword [ebp - 0x14], ebx
jmp 0x45e405
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x180]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45e3f6
mov ecx, dword [ebp - 0xb4]
xor eax, eax
cmp dword [ecx + 4], edi
setge al
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x45e430
mov eax, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp dword [ecx + 4], ebx
mov eax, ebx
je 0x45e432
mov eax, edi
mov ecx, dword [ecx + 4]
add ecx, eax
mov eax, dword [ebp - 0x180]
mov dword [eax + 4], ecx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45e450
push ebx
call dword [0xaa8148]
lea ecx, [ebp - 0x180]
call fcn.0040af7d
lea ecx, [ebp - 0xb4]
call fcn.0040af7d
cmp dword [ebp - 0x70], 0
je 0x45e62d
cmp dword [ebp - 0x74], 0
je 0x45e62d
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x28], 0xfffffff9
cmp dword [ebp - 0x28], 0x12
jle 0x45e4d0
mov esi, dword [0xaa8580]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45e4c1
push 0x251d
push 0x1530
push 0xbde
push 0x151f
push 0x2677
push ebx
push ebx
push ebx
push ebx
push 0x190c
call esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x12
jg 0x45e494
mov esi, dword [0xaa83cc]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45e4de
push ebx
push ebx
push ebx
call esi
push 0x2a53
push edi
push dword [ebp - 0x70]
push edi
push 0x2c49
push 0x4e1f
call fcn.0045a5cd
push dword [ebp - 0x70]
call section..bmlcwr_1
add esp, 0x1c
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0x48cb
cmp dword [ebp - 0x2c], 0x4958
jle 0x45e555
push ebx
call dword [0xaa8164]
mov esi, ebx
mov dword [ebp - 0x34], ebx
mov eax, ebx
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xaa4f58
call fcn.0040ac83
inc ebx
cmp ebx, 0x5027
jl 0x45e521
inc esi
cmp esi, 0x774d
push 0
pop ebx
jl 0x45e51e
push 0x3e0
push ebx
push ebx
push ebx
call dword [0xaa8084]
push 3
lea ecx, [ebp - 0x1b8]
call fcn.0040aeab
mov dword [ebp - 4], 0x20
cmp dword [ebp - 0x2c], 0x4689
jge 0x45e581
mov edx, 0xa89784
mov ecx, 0xaa4f58
call fcn.0040d509
or dword [ebp - 4], 0xffffffff
jmp 0x45e5aa
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x34], 0x5f1dbecc
push edi
lea ecx, [ebp - 0x18c]
call fcn.0040aeab
mov dword [ebp - 0x2c], 3
mov dword [ebp - 0x1c], ebx
jmp 0x45e5e3
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1b8]
mov dword [eax + ecx*4], 0x177e
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x45e5d0
mov dword [ebp - 0x1c], ebx
jmp 0x45e601
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18c]
mov dword [eax + ecx*4], 0xd37ad435
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x45e5ee
inc dword [ebp - 0x2c]
lea ecx, [ebp - 0x18c]
call fcn.0040af7d
lea ecx, [ebp - 0x1b8]
call fcn.0040af7d
lea eax, [ebp - 0x54]
push eax
call fcn.0045e948
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov dword [ebp - 0x1c], 0x9869
mov dword [ebp - 0x14], 0xfc6088b9
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], 0x67f5aee0
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
mov edx, edi
jne 0x45e651
mov edx, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setl cl
add ecx, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, 2
setl dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0x643
setne al
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setg dl
imul edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp dword [ebp - 0x34], eax
setne cl
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, 0x34cb
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x24], ecx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45e6f4
push 0xc86
push 0x19d9
call dword [0xaa811c]
lea ecx, [ebp - 0x74]
call fcn.00454860
mov dword [ebp - 0x2c], 5
push 3
lea ecx, [ebp - 0x15c]
call fcn.0040aeab
mov dword [ebp - 0x34], 0xfffffffc
movdqa xmm0, xmmword [0xa931e0]
movdqu xmmword [ebp - 0x1e8], xmm0
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x1e8]
push eax
push ebx
lea ecx, [ebp - 0xc4]
call fcn.0040deff
mov dword [ebp - 0x3c], 0x350d8af
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x14], ebx
jmp 0x45e77c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x15c]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45e769
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x15c]
mov dword [eax + 4], ebx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc4]
xor ecx, ecx
cmp dword [eax + 4], ecx
setne cl
add ecx, dword [eax + 4]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xc4]
call fcn.0040af7d
lea ecx, [ebp - 0x15c]
call fcn.0040af7d
cmp dword [ebp - 0x40], 0
jne 0x45e858
cmp dword [ebp - 0x28], 0
je 0x45e858
push dword [ebp - 0x50]
push dword [ebp - 0x28]
call fcn.0049dbd9
pop ecx
pop ecx
mov esi, eax
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0x28], 0xfffffff9
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x28], ebx
jmp 0x45e847
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x45e83e
push ebx
push 0x2081
push 0x1616
push 0xe8a
push 0xa35
push 0x181b
push 0x20cd
push 0x1824
push 0x233a
push 0x253e
push 0x1b48
call dword [0xaa8140]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffeb
jle 0x45e7fc
lea eax, [ebp - 0x58]
push eax
call fcn.0045e8e6
mov dword [eax], esi
mov eax, dword [ebp + 8]
mov edi, eax
lea esi, [ebp - 0xd4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret