Function at 0x48d158
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov eax, 0x4bf7c1
call fcn.004be5b0
push ecx
mov eax, 0x12bc
call fcn.004baf50
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x6c], dl
mov dword [ebp - 0x1c0], ecx
mov dword [ebp - 0x19c], 0x847dfa86
mov dword [ebp - 0x198], 0x847dfa86
mov dword [ebp - 0x194], 0x847dfa86
mov dword [ebp - 0x190], 0x847dfa86
movdqa xmm0, xmmword [0xacb950]
movdqu xmmword [ebp - 0xb04], xmm0
lea ecx, [ebp - 0xb04]
lea eax, [ebp - 0xaf4]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x1d4]
call fcn.00408968
mov dword [ebp - 0x40], 0xfffffff9
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x48d1f9
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xc4], 0x63abefa0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48d1e0
xor eax, eax
mov ecx, dword [ebp - 0x1d4]
mov dword [ecx], eax
or esi, 0xffffffff
xor edi, edi
inc edi
cmp dword [ecx], 3
jg 0x48d471
mov dword [ebp - 0x4c], 0xab274bf9
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x34], 0x40e708be
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x48d249
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x410], 0x3531
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48d230
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 3
jg 0x48d464
mov dword [ebp - 0x3c], 0x2703d9b9
mov dword [ebp - 0x34], 0x62daab72
mov dword [ebp - 0x20], 0x452a26f3
mov dword [ebp - 0x18], 0x39ba
cmp dword [ebp - 0x18], 0x3d65
jle 0x48d2c1
mov edi, eax
mov esi, eax
mov dword [ebp - 0x40], eax
mov ebx, esi
mov esi, 0x2c66
mov eax, edi
mov ecx, ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
dec ebx
dec esi
jne 0x48d289
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x3d3a
jl 0x48d282
inc edi
cmp edi, 0x8b8
push 0
pop eax
jl 0x48d27d
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x3c], 0x9d44c039
mov dword [ebp - 4], eax
cmp dword [ebp - 0x18], 0x37e5
jge 0x48d2e3
mov edx, 0xac8998
mov ecx, 0xadd238
call fcn.0040af1a
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x48d30f
mov dword [ebp - 0x38], 0x1637c1d6
mov dword [ebp - 0x3c], 0xfffffff8
mov dword [ebp - 0x40], 0x605a
cmp dword [ebp - 0x40], 0x63b8
jle 0x48d388
mov edi, eax
mov esi, eax
mov ebx, eax
lea ecx, [ebx + esi]
mov eax, edi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x1254]
call fcn.00401a68
pop ecx
pop ecx
mov ecx, eax
call fcn.00408686
push eax
call fcn.004a8e07
pop ecx
push 0
push 1
lea ecx, [ebp - 0x1254]
call fcn.00408e6a
inc ebx
cmp ebx, 0xdc9
jl 0x48d333
inc esi
cmp esi, 0x3c6e
push 0
pop eax
jl 0x48d331
inc edi
cmp edi, 0x59aa
jl 0x48d32f
xor edi, edi
inc edi
inc dword [ebp - 0x40c]
mov dword [ebp - 4], 2
cmp dword [ebp - 0x40], 0x5d9d
jge 0x48d3a9
push 0xac89f4
call fcn.004a8e07
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x48d3d4
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 - 0x19c]
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0x4c]
sub edx, eax
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp eax, ecx
setl dl
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc0]
xor ecx, ecx
cmp eax, 0x506ed55c
setg cl
cmp ecx, edi
sbb eax, eax
neg eax
xor edx, edx
cmp eax, 0x254f8d3
setg dl
mov dword [ebp - 0x19c], edx
mov eax, dword [ebp - 0x40c]
xor ecx, ecx
cmp edx, eax
setle cl
push 0xfffffffffffffffd
pop eax
sub eax, ecx
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x4c]
xor eax, eax
jmp 0x48d24c
mov ecx, dword [ebp - 0x1d4]
inc dword [ecx]
jmp 0x48d207
cmp dword [ebp - 0xc0], eax
je 0x48d51c
mov dword [ebp - 0x40], 0x49f7fae0
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x40], edi
mov ecx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x1d4]
add ecx, dword [eax]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp eax, ecx
setg dl
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x40]
sub ecx, 4
xor eax, eax
cmp ecx, 0x28a2
setl al
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp eax, ecx
setl dl
xor ecx, ecx
cmp edx, 0xf963
setge cl
xor edx, edx
mov eax, dword [ebp - 0x1d4]
cmp ecx, dword [eax]
sete dl
sub edx, 0xb1d7
mov ecx, dword [ebp - 0xc0]
add ecx, edx
mov eax, dword [ebp - 0x1d4]
sub ecx, dword [eax + 4]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x459cadfd
setg al
mov dword [ebp - 0x190], eax
jmp 0x48d69c
mov dword [ebp - 0x40], 0xf1b
push 3
lea ecx, [ebp - 0x308]
call fcn.004088bc
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x1c], 0
jmp 0x48d553
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x308]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x48d540
mov dword [ebp - 0x20], 0x4aaa
cmp dword [ebp - 0x20], 0x4da7
jle 0x48d5c8
xor edi, edi
mov dword [ebp - 0x18], edi
xor esi, esi
and dword [ebp - 0x34], 0
mov eax, edi
cdq
idiv esi
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], 0x4bd2
mov edi, dword [ebp - 0x34]
xor ebx, ebx
mov eax, edi
and eax, ebx
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc ebx
cmp ebx, 0x45a3
jl 0x48d588
add edi, dword [ebp - 0x38]
dec dword [ebp - 0x40]
jne 0x48d586
inc esi
cmp esi, 0x5781
mov edi, dword [ebp - 0x18]
jl 0x48d570
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x61f3
jl 0x48d56e
xor edi, edi
inc edi
or esi, 0xffffffff
mov eax, dword [ebp - 0x190]
xor ecx, ecx
mov eax, dword [ebp - 0x1d4]
cmp dword [eax], edi
setne cl
mov eax, dword [ebp - 0x308]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xc0], 0x99b5
mov eax, dword [ebp - 0x190]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x194]
xor ecx, ecx
mov eax, dword [ebp - 0x308]
cmp dword [eax], ecx
sete cl
mov dword [ebp - 0x40], edi
xor edx, edx
cmp ecx, edi
setne dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, edx
setg cl
mov eax, dword [ebp - 0x1d4]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x308]
mov eax, dword [eax]
mov dword [ebp - 0x198], eax
mov dword [ebp - 4], 4
cmp dword [ebp - 0x20], 0x490f
jge 0x48d669
mov edx, 0xac8a20
mov ecx, 0xadd238
call fcn.0040af1a
mov dword [ebp - 4], esi
jmp 0x48d691
lea ecx, [ebp - 0x308]
call fcn.0040898e
lea ecx, [ebp - 0x1d4]
call fcn.0040898e
push edi
lea ecx, [ebp - 0x55c]
call fcn.004088bc
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x48d6da
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x55c]
mov dword [eax + ecx*4], 0xea7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x48d6c0
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jg 0x48d732
jmp 0x48d6e6
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x48d6fc
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xc74], 0xea6801fc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x48d6eb
mov dword [ebp - 0xc6c], esi
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x55c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x55c]
cmp dword [eax + ecx*4], 0
jne 0x48d732
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0
jle 0x48d6e4
lea ecx, [ebp - 0x55c]
call fcn.0040898e
mov ebx, 0xfffc
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], 0x638ecf54
push 5
pop ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x40], 0x8f62c4df
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], 0
jmp 0x48d776
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x424], 3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48d765
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x2c], ecx
jmp 0x48d812
mov dword [ebp - 0x34], 0x118c84b7
mov dword [ebp - 0x1c], 0
jmp 0x48d7ab
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x150], 0x576c5165
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48d79a
cmp dword [ebp - 0x2c], 0
je 0x48d7e7
mov eax, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x150]
sub ecx, 0x1fc42ff1
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x424]
imul eax, ecx
test eax, eax
je 0x48d7e7
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x424]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xfffffffe
jg 0x48d78a
push 4
lea ecx, [ebp - 0x3a8]
call fcn.004088bc
mov dword [ebp - 0x24], 0xd534a2c9
mov dword [ebp - 0x4c], 2
mov dword [ebp - 0x1c], 0x30f8
cmp dword [ebp - 0x1c], 0x343b
jle 0x48d8e7
xor edi, edi
mov dword [ebp - 0x20], edi
xor esi, esi
mov dword [ebp - 0x18], esi
and dword [ebp - 0x34], 0
mov eax, edi
cdq
idiv esi
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], 0x62cb
mov edi, dword [ebp - 0x34]
xor ebx, ebx
mov eax, edi
mov ecx, ebx
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xe58]
call fcn.00401a68
pop ecx
pop ecx
mov ecx, eax
call fcn.00408686
push eax
call fcn.004a8e07
pop ecx
push 0
push 1
lea ecx, [ebp - 0xe58]
call fcn.00408e6a
inc ebx
cmp ebx, 0x793e
jl 0x48d86d
add edi, dword [ebp - 0x38]
dec dword [ebp - 0x40]
jne 0x48d86b
mov esi, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x7f6f
mov edi, dword [ebp - 0x20]
jl 0x48d855
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x7074
jl 0x48d850
push 0
push 0xfc0
call dword [0xae0464]
mov ebx, 0xfffc
xor edi, edi
inc edi
or esi, 0xffffffff
push 2
lea ecx, [ebp - 0x254]
call fcn.004088bc
mov dword [ebp - 4], 6
cmp dword [ebp - 0x1c], 0x2e99
jge 0x48d90f
push 0xac8a78
call fcn.004a8e07
pop ecx
mov dword [ebp - 4], esi
jmp 0x48d93c
mov dword [ebp - 0x30], 0x4cd4536
push edi
lea ecx, [ebp - 0x41c]
call fcn.004088bc
push 2
lea ecx, [ebp - 0x7e4]
call fcn.004088bc
mov dword [ebp - 0x50], 0
jmp 0x48d975
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x254]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 2
jl 0x48d965
mov dword [ebp - 0x50], 0
jmp 0x48d993
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x41c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], edi
jl 0x48d984
mov dword [ebp - 0x50], 0
jmp 0x48d9b1
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x7e4]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 2
jl 0x48d9a1
mov dword [ebp - 0x40], 0x2e88
cmp dword [ebp - 0x40], 0x3135
jle 0x48da11
xor esi, esi
xor edi, edi
mov eax, edi
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x1080]
call fcn.00401a68
pop ecx
pop ecx
mov ecx, eax
call fcn.00408686
push eax
call fcn.004a8e07
pop ecx
push 0
push 1
lea ecx, [ebp - 0x1080]
call fcn.00408e6a
inc edi
cmp edi, 0x1602
jl 0x48d9cb
inc esi
cmp esi, 0x72b3
jl 0x48d9c9
xor edi, edi
inc edi
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x30], edi
jg 0x48db75
mov esi, dword [ebp - 0x254]
mov edi, dword [ebp - 0x7e4]
mov dword [ebp - 0x44], 0xa3062a4b
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x254]
mov eax, dword [edx + eax*4]
mov ecx, dword [ebp - 0x41c]
mov dword [ecx], eax
dec eax
jne 0x48da60
mov dword [ecx], 0xa9da
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x254]
mov ecx, dword [ebp - 0x41c]
xor eax, eax
cmp dword [ecx], eax
setne al
cmp eax, dword [edx]
jg 0x48da6e
mov eax, dword [ebp - 0x30]
cmp dword [esi + 4], 0
je 0x48da88
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x254]
cmp dword [eax + ecx*4], 0
je 0x48da88
xor edx, edx
inc edx
jmp 0x48da8a
xor edx, edx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x254]
mov eax, dword [eax + ecx*4]
sub eax, edx
xor ecx, ecx
cmp eax, 0x738a
setle cl
mov dword [edi + 4], ecx
xor eax, eax
mov dword [ebp - 0x44], eax
or ecx, 0xffffffff
jmp 0x48db5c
mov dword [ebp - 0x4c], 0x722abac8
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], 1
je 0x48db59
mov dword [ebp - 0x2c], 1
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x48dade
call dword [fcn.00ae055c]
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], eax
jl 0x48db49
push 3
lea ecx, [ebp - 0x694]
call fcn.004088bc
mov dword [ebp - 0x1c], 0
jmp 0x48db0f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x694]
mov dword [eax + ecx*4], 0xd711a53f
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x48dafc
mov edx, dword [ebp - 0x694]
and dword [edx + 8], 0
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x41c]
cmp dword [eax + ecx*4], 0
jne 0x48db37
inc dword [edx + 8]
cmp dword [edx + 8], 0
jle 0x48db1f
lea ecx, [ebp - 0x694]
call fcn.0040898e
dec dword [ebp - 0x2c]
jns 0x48dae6
xor eax, eax
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 1
jne 0x48dac6
or ecx, 0xffffffff
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], ecx
jle 0x48dab2
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 1
jle 0x48da2d
xor edi, edi
inc edi
mov dword [ebp - 4], 8
cmp dword [ebp - 0x40], 0x2dcb
jge 0x48db90
push 0xac8ac0
call fcn.004a8e07
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x48dbc0
push 5
pop esi
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x48dbda
push eax
push eax
push eax
push 0x198d
call dword [fcn.00ae0098]
lea ecx, [ebp - 0x7e4]
call fcn.0040898e
lea ecx, [ebp - 0x41c]
call fcn.0040898e
lea ecx, [ebp - 0x254]
call fcn.0040898e
mov dword [ebp - 0x38], 0x863e8712
mov dword [ebp - 0x1c], 0xfd3df75d
mov dword [ebp - 0x34], 0xfffffffd
mov dword [ebp - 0x1c], 0xffffffe8
cmp dword [ebp - 0x1c], 0xa
je 0x48dc40
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x48dc34
push eax
push eax
push eax
push eax
call dword [fcn.00ae0390]
xor eax, eax
mov dword [ebp - 0x34], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xa
jne 0x48dc1f
mov dword [ebp - 0x1c], 0
jmp 0x48dc5c
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3a8]
mov dword [eax + ecx*4], 0xc8d46758
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x48dc49
push 3
lea ecx, [ebp - 0x4cc]
call fcn.004088bc
mov dword [ebp - 0x30], 0xfe7d8a87
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x1c], 0x9cea
push 4
lea ecx, [ebp - 0x574]
call fcn.004088bc
mov dword [ebp - 0x40], 0x6dad8be7
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x50], 0
jmp 0x48dcb4
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4cc]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 3
jl 0x48dca4
mov dword [ebp - 0x50], 0
jmp 0x48dcd6
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x574]
mov dword [eax + ecx*4], 0x110c
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 4
jl 0x48dcc3
mov dword [ebp - 0x40], 0x74fa
cmp dword [ebp - 0x40], 0x7709
jle 0x48dd3e
xor esi, esi
xor edi, edi
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xe88]
call fcn.00401a68
pop ecx
pop ecx
mov ecx, eax
call fcn.00408686
push eax
call fcn.004a8e07
pop ecx
push 0
push 1
lea ecx, [ebp - 0xe88]
call fcn.00408e6a
inc edi
cmp edi, 0x7c0b
jl 0x48dcf0
inc esi
cmp esi, 0x15e9
jl 0x48dcee
call dword [0xae01b0]
xor edi, edi
inc edi
mov dword [ebp - 0x50], 0
jmp 0x48dd58
mov eax, dword [ebp - 0x50]
mov dword [ebp + eax*4 - 0x360], 7
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], edi
jl 0x48dd47
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x40], 0x7358
jge 0x48dd78
push 0xac8b24
call fcn.004a8e07
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x48dda8
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 2
jg 0x48deca
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4cc]
mov dword [eax + 8], ecx
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x2c], 2
jg 0x48dec2
mov dword [ebp - 0x4c], 0x55c8
cmp dword [ebp - 0x4c], 0x593d
jle 0x48de2f
xor esi, esi
mov dword [ebp - 0x20], esi
xor ebx, ebx
mov dword [ebp - 0x40], 0x690d
xor edi, edi
mov esi, 0x1f6f
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
add edi, ebx
dec esi
jne 0x48ddfd
mov esi, dword [ebp - 0x20]
add ebx, esi
dec dword [ebp - 0x40]
jne 0x48ddf6
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x1ecf
jl 0x48dded
mov ebx, 0xfffc
xor edi, edi
inc edi
mov byte [ebp - 0x45], 0
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x4c], 0x5537
jge 0x48de52
mov edx, 0xac8b48
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
jmp 0x48de7e
cmp byte [ebp - 0x45], 0
je 0x48deb7
push 0x1cc3
push 0x1f0d
push 0x1712
push 0xe3d
push 0x23fa
push 0x12d9
push 0x147e
push 0x1ff
push 0x3aa
call dword [fcn.00ae00f0]
mov eax, dword [ebp - 0x2c]
inc dword [ebp - 0x2c]
jmp 0x48ddce
inc dword [ebp - 0x30]
jmp 0x48ddab
mov edx, dword [ebp - 0x4cc]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x18]
sub eax, 0xc437ffe
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [edx + 4]
je 0x48def3
cmp dword [ebp - 0x1c], 0
je 0x48def3
mov ecx, edi
jmp 0x48def5
xor ecx, ecx
mov dword [edx + 4], ecx
xor eax, eax
cmp ecx, 0xdda259c
setg al
cmp eax, dword [ebp - 0x30]
jge 0x48df11
xor eax, eax
cmp dword [ebp - 0x1c], eax
mov ecx, eax
je 0x48df13
mov ecx, edi
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x574]
dec dword [eax + 8]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 8]
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x1c]
jne 0x48df53
mov eax, dword [ebp - 0x574]
cmp dword [eax], 0
jne 0x48df53
xor eax, eax
jmp 0x48df55
mov eax, edi
mov ecx, ebx
sub ecx, eax
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setle dl
mov dword [ebp - 0x360], edx
mov dword [ebp - 0x34], edx
lea ecx, [ebp - 0x574]
call fcn.0040898e
lea ecx, [ebp - 0x4cc]
call fcn.0040898e
mov esi, dword [ebp - 0x3a8]
mov ecx, dword [esi + 8]
neg ecx
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
imul edx, dword [esi + 8]
mov eax, dword [ebp - 0x28]
imul eax, edx
neg eax
sbb eax, eax
add eax, 0xfbd2
cmp eax, dword [esi + 8]
jle 0x48dfb2
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3a8]
and dword [eax + 4], 0
mov dword [ebp - 0x4c], edi
xor eax, eax
cmp dword [ebp - 0x4c], eax
je 0x48dfcd
cmp dword [ebp - 0x28], eax
mov edx, edi
jne 0x48dfcf
mov edx, eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x28]
xor ebx, ebx
cmp edx, eax
setg bl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp ebx, eax
setne cl
xor eax, eax
cmp ecx, edi
setg al
xor edx, edx
cmp eax, 9
setl dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, edx
setle cl
sub ecx, dword [ebp - 0x28]
jne 0x48e01e
xor eax, eax
cmp dword [esi + 8], eax
mov ecx, eax
je 0x48e020
mov ecx, edi
mov eax, dword [ebp - 0x24]
add eax, ecx
cmp eax, dword [ebp - 0x24]
je 0x48e064
mov dword [ebp - 0x28], 0xffffffe2
cmp dword [ebp - 0x28], 0x10
jg 0x48e261
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x48e056
push eax
push 0x28a
push eax
push eax
call dword [0xae027c]
xor eax, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x10
jle 0x48e03d
jmp 0x48e261
mov dword [ebp - 0x2c], 0x3a38
mov dword [ebp - 0x18], 0xa615b38d
push edi
lea ecx, [ebp - 0x868]
call fcn.004088bc
mov dword [ebp - 0x1c], 0
jmp 0x48e097
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x868]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x48e087
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x28], 0x36
jle 0x48e256
mov dword [ebp - 0x40], 0xf86
cmp dword [ebp - 0x40], 0x1057
jle 0x48e106
xor esi, esi
xor edi, edi
mov ebx, 0x64d9
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
add edi, esi
dec ebx
jne 0x48e0c6
inc esi
cmp esi, 0x2782
jl 0x48e0bf
push ebx
push 0x1b6d
push 0xe17
push 0x14d9
push 0xbb5
push 0x484
call dword [0xae0088]
xor edi, edi
inc edi
mov dword [ebp - 0x20], 0xa264f7d
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x40], 0xc27
jge 0x48e12c
mov edx, 0xac8ba0
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
jmp 0x48e153
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x34], 0x261b24c0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x48e242
push 2
lea ecx, [ebp - 0x6ac]
call fcn.004088bc
mov dword [ebp - 0x34], 0x8010ca1d
mov dword [ebp - 0x1c], 0
jmp 0x48e1a1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x6ac]
mov dword [eax + ecx*4], 0x89a43d54
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48e18e
cmp dword [ebp - 0x2c], 0
je 0x48e229
mov esi, dword [ebp - 0x6ac]
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ecx
setle dl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setl cl
cmp ecx, dword [ebp - 0x2c]
je 0x48e1dc
cmp dword [esi + 4], 0
jne 0x48e1df
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x3a8]
and dword [eax + 4], 0
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
neg eax
xor ecx, ecx
test eax, eax
setle cl
add ecx, dword [esi + 4]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x868]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
sbb eax, eax
inc eax
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], edi
lea ecx, [ebp - 0x6ac]
call fcn.0040898e
jmp 0x48e24e
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x34], 0
jne 0x48e256
inc dword [ebp - 0x28]
jmp 0x48e0a3
lea ecx, [ebp - 0x868]
call fcn.0040898e
lea ecx, [ebp - 0x3a8]
call fcn.0040898e
mov dword [ebp - 0x28], 0xfffc
push 4
lea ecx, [ebp - 0x58c]
call fcn.004088bc
mov dword [ebp - 0x2c], 0xd534a2c9
mov dword [ebp - 0x4c], 2
mov dword [ebp - 0x34], 0x863e8712
mov dword [ebp - 0x1c], 0
jmp 0x48e2b1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58c]
mov dword [eax + ecx*4], 0xc8d46758
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x48e29e
mov dword [ebp - 0x40], 0x4acd
cmp dword [ebp - 0x40], 0x4b3d
jle 0x48e2fa
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [esi + edi]
add eax, ebx
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc esi
cmp esi, 0xc55
jl 0x48e2cd
inc edi
cmp edi, 0x305a
jl 0x48e2cb
inc ebx
cmp ebx, 0x21d4
jl 0x48e2c9
mov esi, dword [ebp - 0x58c]
mov ecx, dword [esi + 8]
neg ecx
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
imul edx, dword [esi + 8]
mov eax, dword [ebp - 0x28]
imul eax, edx
neg eax
sbb eax, eax
add eax, 0xfbd2
cmp eax, dword [esi + 8]
jle 0x48e32a
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x58c]
xor eax, eax
mov dword [edi + 4], eax
xor ecx, ecx
inc ecx
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], eax
je 0x48e347
cmp dword [ebp - 0x28], eax
mov edx, ecx
jne 0x48e349
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x28]
xor ebx, ebx
cmp edx, eax
setg bl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp ebx, eax
setne cl
xor eax, eax
xor ebx, ebx
inc ebx
cmp ecx, ebx
setg al
xor edx, edx
cmp eax, 9
setl dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, edx
setle cl
sub ecx, dword [ebp - 0x28]
jne 0x48e39b
xor eax, eax
cmp dword [esi + 8], eax
mov ecx, eax
je 0x48e39d
mov ecx, ebx
mov eax, dword [ebp - 0x2c]
add eax, ecx
cmp eax, dword [ebp - 0x2c]
je 0x48e3e1
mov dword [ebp - 0x28], 0xffffffe2
cmp dword [ebp - 0x28], 0x10
jg 0x48e539
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x48e3d3
push eax
push 0x28a
push eax
push eax
call dword [0xae027c]
xor eax, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x10
jle 0x48e3ba
jmp 0x48e539
mov dword [ebp - 0x2c], 0x3a38
mov dword [ebp - 0x18], 0xa615b38d
push ebx
lea ecx, [ebp - 0x7f0]
call fcn.004088bc
mov dword [ebp - 0x1c], 0
jmp 0x48e414
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7f0]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x48e404
mov dword [ebp - 0x28], 0
jmp 0x48e524
mov dword [ebp - 0x20], 0xa264f7d
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x38], 0x261b24c0
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x48e515
push 2
lea ecx, [ebp - 0x6c4]
call fcn.004088bc
mov dword [ebp - 0x38], 0x8010ca1d
mov dword [ebp - 0x1c], 0
jmp 0x48e47a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x6c4]
mov dword [eax + ecx*4], 0x89a43d54
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48e467
cmp dword [ebp - 0x2c], 0
je 0x48e4fc
mov esi, dword [ebp - 0x6c4]
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ecx
setle dl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setl cl
cmp ecx, dword [ebp - 0x2c]
je 0x48e4b5
cmp dword [esi + 4], 0
jne 0x48e4b8
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
and dword [edi + 4], 0
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
neg eax
xor ecx, ecx
test eax, eax
setle cl
add ecx, dword [esi + 4]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x7f0]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
sbb eax, eax
inc eax
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x6c4]
call fcn.0040898e
jmp 0x48e521
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x38], 0
jne 0x48e52e
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x36
jg 0x48e425
lea ecx, [ebp - 0x7f0]
call fcn.0040898e
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x40], 0x4a63
jge 0x48e558
mov edx, 0xac8c00
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58c]
call fcn.0040898e
mov dword [ebp - 0x4c], 0xe1e87df2
mov dword [ebp - 0x18], 6
mov dword [ebp - 0x20], 0x2486
cmp dword [ebp - 0x20], 0x2520
jle 0x48e5fd
xor eax, eax
mov dword [ebp - 0x18], eax
xor ebx, ebx
mov dword [ebp - 0x40], ebx
xor edi, edi
mov ecx, ebx
shl eax, cl
mov dword [ebp - 0x34], eax
xor esi, esi
mov ebx, eax
mov ecx, edi
shl ebx, cl
mov eax, ebx
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc esi
cmp esi, 0x71c4
jl 0x48e5a0
inc edi
cmp edi, 0x717f
mov eax, dword [ebp - 0x34]
jl 0x48e598
mov ebx, dword [ebp - 0x40]
inc ebx
mov dword [ebp - 0x40], ebx
cmp ebx, 0x18a
mov eax, dword [ebp - 0x18]
jl 0x48e58f
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x3cc
jl 0x48e58a
push 0xa50
push 0xb67
push 0xfc9
push 0x1174
call dword [0xae049c]
xor eax, eax
mov dword [ebp - 0x61c], eax
mov dword [ebp - 0x618], eax
mov dword [ebp - 0x614], eax
mov dword [ebp - 0x610], eax
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x20], 0x23f7
jge 0x48e636
mov edx, 0xac8c48
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
push 8
xor ebx, ebx
pop esi
inc ebx
mov dword [ebp - 0x40], ebx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x4c], 0
jmp 0x48e72b
push 4
lea ecx, [ebp - 0x6dc]
call fcn.004088bc
mov dword [ebp - 0x34], 0x495761be
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], eax
jmp 0x48e6b6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x6dc]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x48e6a7
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 - 0x61c]
xor ecx, ecx
test eax, eax
setne cl
neg ecx
cmp ecx, 0xffff
je 0x48e705
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0x61c], 0x5f07c70a
xor eax, eax
mov ecx, dword [ebp - 0x6dc]
cmp dword [ecx], 0x5f07c70a
setne al
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ecx + 0xc]
jle 0x48e705
mov ecx, ebx
jmp 0x48e707
xor ecx, ecx
xor eax, eax
test ecx, ecx
setle al
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x6dc]
call fcn.0040898e
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 3
jle 0x48e689
mov dword [ebp - 0x20], 0x23e9
cmp dword [ebp - 0x20], 0x2641
jle 0x48e7ad
push 0x228e
call dword [0xae04bc]
xor eax, eax
mov dword [ebp - 0x18], eax
xor ebx, ebx
mov dword [ebp - 0x40], ebx
xor esi, esi
cdq
idiv ebx
mov ebx, edx
xor edi, edi
mov eax, esi
cdq
idiv edi
mov eax, ebx
mov ecx, edx
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc edi
cmp edi, 0x4fa8
jl 0x48e763
inc esi
cmp esi, 0x365d
jl 0x48e761
mov ebx, dword [ebp - 0x40]
inc ebx
mov dword [ebp - 0x40], ebx
cmp ebx, 0x46e0
mov eax, dword [ebp - 0x18]
jl 0x48e75a
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x7e1a
jl 0x48e755
xor ebx, ebx
inc ebx
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x20], 0x219b
jge 0x48e7cc
mov edx, 0xac8ca8
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x48e7f7
push 8
pop esi
mov dword [ebp - 0x18], 0x17571177
mov dword [ebp - 0x18], 0xffffffe2
mov edi, 0xfffc
cmp dword [ebp - 0x18], esi
jl 0x48e8ff
mov dword [ebp - 0x1c], 0x3245f1db
mov dword [ebp - 0x40], 0x711a
cmp dword [ebp - 0x40], 0x74f5
jle 0x48e86f
mov ebx, eax
mov esi, eax
mov edi, eax
mov eax, esi
cdq
idiv edi
mov eax, ebx
mov ecx, edx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc edi
cmp edi, 0x2b73
jl 0x48e833
inc esi
cmp esi, 0x555b
push 0
pop eax
jl 0x48e831
inc ebx
cmp ebx, 0x492e
jl 0x48e82f
xor ebx, ebx
inc ebx
push 8
pop esi
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x48e8a6
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x48e892
push 0x10c2
push 0xcb9
push eax
call dword [fcn.00ae0568]
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x48e8a3
call dword [fcn.00ae056c]
xor eax, eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x16
jl 0x48e876
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x40], 0x7003
jge 0x48e8cb
mov edx, 0xac8d44
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
jmp 0x48e8f5
inc dword [ebp - 0x18]
xor eax, eax
jmp 0x48e808
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0xfffffff9
mov dword [ebp - 0x3c], 0xc9995890
mov dword [ebp - 0x3c], 0x68939f5f
push 3
lea ecx, [ebp - 0xa94]
call fcn.004088bc
mov dword [ebp - 0x4c], 0x84257392
mov dword [ebp - 0x1c], 0
jmp 0x48e94a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa94]
mov dword [eax + ecx*4], 0x6b6cd333
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x48e937
mov eax, dword [ebp - 0x2c]
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x48eb7b
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x20], 0x5ac6
mov dword [ebp - 0x34], 0xac8d60
cmp dword [ebp - 0x20], 0x5df1
jle 0x48ea12
mov dword [ebp - 0x18], eax
jmp 0x48e983
xor eax, eax
mov ebx, eax
jmp 0x48e989
xor eax, eax
mov esi, eax
jmp 0x48e98f
xor eax, eax
mov edi, eax
mov eax, esi
cdq
idiv edi
mov eax, ebx
mov ecx, edx
sar eax, cl
or eax, dword [ebp - 0x18]
cdq
push edx
push eax
lea ecx, [ebp - 0x1194]
call fcn.00401a68
pop ecx
pop ecx
mov ecx, eax
call fcn.00408686
push eax
call fcn.004a8e07
pop ecx
push 0
push 1
lea ecx, [ebp - 0x1194]
call fcn.00408e6a
inc edi
cmp edi, 0x2463
jl 0x48e991
inc esi
cmp esi, 0x60fd
jl 0x48e98d
inc ebx
cmp ebx, 0x352f
jl 0x48e987
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x1fa2
jl 0x48e981
push 0x2438
push 0
push 0x13c9
call dword [0xae03f0]
xor eax, eax
mov edi, 0xfffc
xor ebx, ebx
inc ebx
mov dword [ebp - 0x2c], 0x18
cmp dword [ebp - 0x2c], 0x12
je 0x48eb30
mov dword [ebp - 0x40], 0x3b43
cmp dword [ebp - 0x40], 0x3f1b
jle 0x48ea91
push eax
push eax
push eax
push eax
call dword [fcn.00ae0390]
xor esi, esi
xor edi, edi
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xeb8]
call fcn.00401a68
pop ecx
pop ecx
mov ecx, eax
call fcn.00408686
push eax
call fcn.004a8e07
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xeb8]
call fcn.00408e6a
inc edi
cmp edi, 0x7235
jl 0x48ea41
inc esi
cmp esi, 0x7fb4
jl 0x48ea3f
xor eax, eax
push eax
push eax
push eax
push eax
call dword [0xae0334]
push 2
lea ecx, [ebp - 0x8b0]
call fcn.004088bc
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x40], 0x3a49
jge 0x48eab9
push 0xac8dac
call fcn.004a8e07
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x48eae4
mov edi, 0xfffc
mov dword [ebp - 0x3c], 0xa062b000
mov dword [ebp - 0x1c], eax
jmp 0x48eb08
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x8b0]
mov dword [eax + ecx*4], 2
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48eaf5
mov eax, dword [ebp - 0x8b0]
mov dword [eax + 4], 0x1a
lea ecx, [ebp - 0x8b0]
call fcn.0040898e
dec dword [ebp - 0x2c]
xor eax, eax
jmp 0x48ea19
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x20], 0x5a07
jge 0x48eb49
push dword [ebp - 0x34]
call fcn.004a8e07
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x48eb9c
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x48eb99
push eax
push 0x114e
push 0x20d2
push 0x164
call dword [0xae0048]
or esi, 0xffffffff
inc dword [ebp - 0x4c]
lea ecx, [ebp - 0xa94]
call fcn.0040898e
push 4
lea ecx, [ebp - 0x49c]
call fcn.004088bc
mov dword [ebp - 0x50], 0xd534a2c9
mov dword [ebp - 0x1bc], 0x847dfa86
mov dword [ebp - 0x1b8], 0x847dfa86
mov dword [ebp - 0x1b4], 0x847dfa86
mov dword [ebp - 0x1b0], 0x847dfa86
movdqa xmm0, xmmword [0xacb950]
movdqu xmmword [ebp - 0xc04], xmm0
lea ecx, [ebp - 0xc04]
lea eax, [ebp - 0xbf4]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x1e4]
call fcn.00408968
mov dword [ebp - 0x40], 0xfffffff9
mov dword [ebp - 0x1c], 0
jmp 0x48ec31
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xf8], 0x63abefa0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48ec20
mov eax, dword [ebp - 0x1e4]
and dword [eax], 0
mov dword [ebp - 0x30], 0xab274bf9
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x34], 0x40e708be
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x48ec7b
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x438], 0x3531
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48ec62
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x48ed3c
mov dword [ebp - 0x3c], 0x2703d9b9
mov dword [ebp - 0x34], 0x62daab72
mov dword [ebp - 0x40], 0x452a26f3
mov dword [ebp - 0x3c], 0x9d44c039
mov dword [ebp - 0x38], 0x1637c1d6
mov dword [ebp - 0x3c], 0xfffffff8
inc dword [ebp - 0x434]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x1bc]
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0x30]
sub edx, eax
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp eax, ecx
setl dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xf4]
xor ecx, ecx
cmp eax, 0x506ed55c
setg cl
cmp ecx, ebx
sbb eax, eax
neg eax
xor edx, edx
cmp eax, 0x254f8d3
setg dl
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0x434]
xor ecx, ecx
cmp edx, eax
setle cl
push 0xfffffffffffffffd
pop eax
sub eax, ecx
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jle 0x48ec83
mov eax, dword [ebp - 0x1e4]
inc dword [eax]
cmp dword [eax], 3
jle 0x48ec40
cmp dword [ebp - 0xf4], 0
je 0x48ee02
mov dword [ebp - 0x40], 0x49f7fae0
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x40], ebx
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1e4]
add ecx, dword [eax]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0xf8]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x40]
sub eax, 4
xor ecx, ecx
cmp eax, 0x28a2
setl cl
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp eax, ecx
setl dl
xor ecx, ecx
cmp edx, 0xf963
setge cl
xor edx, edx
mov eax, dword [ebp - 0x1e4]
cmp ecx, dword [eax]
sete dl
sub edx, 0xb1d7
mov ecx, dword [ebp - 0xf4]
add ecx, edx
mov eax, dword [ebp - 0x1e4]
sub ecx, dword [eax + 4]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x459cadfd
setg al
mov dword [ebp - 0x1b0], eax
jmp 0x48eecc
mov dword [ebp - 0x40], 0xf1b
push 3
lea ecx, [ebp - 0x468]
call fcn.004088bc
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x1c], 0
jmp 0x48ee39
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x468]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x48ee26
mov eax, dword [ebp - 0x1b0]
xor ecx, ecx
mov eax, dword [ebp - 0x1e4]
cmp dword [eax], ebx
setne cl
mov eax, dword [ebp - 0x468]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40], ebx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xf4], 0x99b5
mov eax, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1b4]
xor ecx, ecx
mov eax, dword [ebp - 0x468]
cmp dword [eax], ecx
sete cl
mov dword [ebp - 0x40], ebx
xor edx, edx
cmp ecx, ebx
setne dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, edx
setg cl
mov eax, dword [ebp - 0x1e4]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x468]
mov eax, dword [eax]
mov dword [ebp - 0x1b8], eax
lea ecx, [ebp - 0x468]
call fcn.0040898e
lea ecx, [ebp - 0x1e4]
call fcn.0040898e
mov dword [ebp - 0x20], 2
push ebx
lea ecx, [ebp - 0x5a4]
call fcn.004088bc
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x48ef11
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5a4]
mov dword [eax + ecx*4], 0xea7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x48eef7
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jg 0x48ef69
jmp 0x48ef1d
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x48ef33
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xc38], 0xea6801fc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x48ef22
mov dword [ebp - 0xc30], esi
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x5a4]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x5a4]
cmp dword [eax + ecx*4], 0
jne 0x48ef69
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0
jle 0x48ef1b
lea ecx, [ebp - 0x5a4]
call fcn.0040898e
mov dword [ebp - 0x38], 0x863e8712
mov dword [ebp - 0x2c], 0x638ecf54
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x40], 0x8f62c4df
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], 0x33f5
cmp dword [ebp - 0x1c], 0x369c
jle 0x48f003
xor ebx, ebx
mov dword [ebp - 0x20], ebx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], 0x4c91
xor edi, edi
mov ebx, dword [ebp - 0x18]
xor esi, esi
lea ecx, [esi + edi]
mov eax, ebx
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc esi
cmp esi, 0x757e
jl 0x48efbb
inc edi
cmp edi, 0x1096
jl 0x48efb9
mov ebx, dword [ebp - 0x20]
add dword [ebp - 0x18], ebx
dec dword [ebp - 0x40]
jne 0x48efb4
inc ebx
mov dword [ebp - 0x20], ebx
cmp ebx, 0x2e45
jl 0x48efa8
mov edi, 0xfffc
xor ebx, ebx
inc ebx
or esi, 0xffffffff
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x1c], 0x337a
jge 0x48f022
mov edx, 0xac8dd0
mov ecx, 0xadd238
call fcn.0040af1a
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x48f053
push 5
pop ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x48f078
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x450], 3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48f05f
xor eax, eax
mov dword [ebp - 0x450], esi
mov dword [ebp - 0x2c], ecx
jmp 0x48f112
mov dword [ebp - 0x34], 0x118c84b7
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x48f0af
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x158], 0x576c5165
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x48f096
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x48f0e4
mov eax, dword [ebp - 0x154]
mov eax, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x158]
sub ecx, 0x1fc42ff1
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x450]
imul eax, ecx
test eax, eax
je 0x48f0e4
mov eax, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x450]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x2c]
push 0
pop eax
cmp dword [ebp - 0x2c], 0xfffffffe
jg 0x48f086
push 2
lea ecx, [ebp - 0x20c]
call fcn.004088bc
mov dword [ebp - 0x30], 0x4cd4536
push ebx
lea ecx, [ebp - 0x3c0]
call fcn.004088bc
mov dword [ebp - 0x40], 0x49b
cmp dword [ebp - 0x40], 0x548
jle 0x48f17b
xor edi, edi
xor esi, esi
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc esi
cmp esi, 0x114a
jl 0x48f150
inc edi
cmp edi, 0x751d
jl 0x48f14e
mov edi, 0xfffc
or esi, 0xffffffff
push 2
lea ecx, [ebp - 0x808]
call fcn.004088bc
mov dword [ebp - 4], 0x1e
cmp dword [ebp - 0x40], 0x1ae
jge 0x48f1a7
mov edx, 0xac8e60
mov ecx, 0xadd238
call fcn.0040af1a
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x48f1d8
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 2
jge 0x48f1f9
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20c]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x48f1e1
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
jge 0x48f217
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c0]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jl 0x48f201
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 2
jge 0x48f238