Function at 0x4989a3
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a40e4
mov eax, dword fs:[0]
push eax
mov eax, 0x253c
call fcn.0059f510
mov eax, dword [0x5f300c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x2440]
mov ebx, dword [ebp + 8]
push eax
mov dword [ebp - 0x244c], ebx
call fcn.00472850
push 0x80
mov dword [ebp - 0x2518], 0x80
mov byte [ebp - 0x2514], 0
call fcn.0059e4c2
mov esi, eax
add esp, 4
mov ecx, 0x20
mov dword [ebp - 0x2510], esi
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, str.___:_____
mov dl, 0x28
movzx eax, dl
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov dl, byte [ecx]
test dl, dl
jne 0x4977e2
mov dword [ebp - 4], 0
push 0x80
mov dword [ebp - 0x253c], 0x80
mov byte [ebp - 0x2538], dl
call fcn.0059e4c2
mov esi, eax
add esp, 4
mov ecx, 0x20
mov dword [ebp - 0x2534], esi
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, 0x5b6084
mov dl, 0x2b
movzx eax, dl
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov dl, byte [ecx]
test dl, dl
jne 0x497830
mov byte [ebp - 4], 1
push 0x80
mov dword [ebp - 0x2530], 0x80
mov byte [ebp - 0x252c], dl
call fcn.0059e4c2
mov esi, eax
add esp, 4
mov ecx, 0x20
mov dword [ebp - 0x2528], esi
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, 0x5b6088
mov dl, 0x24
jmp 0x497880
movzx eax, dl
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov dl, byte [ecx]
test dl, dl
jne 0x497880
mov ecx, str.abcdefghijklmnopqrstuvwxyz
mov al, 0x61
jmp 0x4978a0
movzx eax, al
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov al, byte [ecx]
test al, al
jne 0x4978a0
mov ecx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZ
mov al, 0x41
jmp 0x4978c0
movzx eax, al
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov al, byte [ecx]
test al, al
jne 0x4978c0
push 0x80
mov byte [ebp - 4], 2
call fcn.0059e4c2
mov esi, eax
add esp, 4
xor eax, eax
mov ecx, 0x20
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, 0x5b6078
mov al, 0x5f
movzx eax, al
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov al, byte [ecx]
test al, al
jne 0x4978f5
mov ecx, str.abcdefghijklmnopqrstuvwxyz
mov al, 0x61
lea esp, [esp]
movzx eax, al
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov al, byte [ecx]
test al, al
jne 0x497910
mov ecx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZ
mov al, 0x41
jmp 0x497930
movzx eax, al
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov al, byte [ecx]
test al, al
jne 0x497930
lea edi, [ebx + 0x50]
lea eax, [ebp - 0x2548]
cmp edi, eax
je 0x497967
push dword [edi + 8]
call fcn.0059e230
add esp, 4
mov dword [edi + 8], esi
mov dword [edi], 0x80
xor esi, esi
mov byte [edi + 4], 1
push esi
call fcn.0059e230
push 0x80
mov dword [ebp - 0x2524], 0x80
mov byte [ebp - 0x2520], 0
call fcn.0059e4c2
mov esi, eax
add esp, 8
mov ecx, 0x20
mov dword [ebp - 0x251c], esi
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, str.___t_v_f_n
mov dl, 0x20
movzx eax, dl
lea ecx, [ecx + 1]
mov byte [eax + esi], 1
mov dl, byte [ecx]
test dl, dl
jne 0x4979a5
mov byte [ebp - 4], 3
cmp byte [ebx + 0x18dd], dl
je 0x4979c8
mov eax, dword [ebx + 0x58]
mov byte [eax + 0x24], 1
mov ecx, dword [ebp - 0x2440]
mov eax, 0x20
push dword [ebp + 0xc]
mov dword [ebp - 0x24d4], eax
xor al, al
mov byte [ebp - 0x24ad], al
mov byte [ebp - 0x249f], al
mov byte [ebp - 0x24a6], al
mov eax, dword [ecx]
push ecx
mov dword [ebp - 0x24d0], 0
mov byte [ebp - 0x249d], 0
mov dword [ebp - 0x24cc], 0
mov dword [ebp - 0x24d8], 0
mov byte [ebp - 0x249e], 0
mov byte [ebp - 0x244d], 0
call dword [eax + 0x14]
mov edi, dword [ebp + 0x14]
mov ecx, edi
and ecx, 0xffffffbf
mov dword [ebp - 0x24ac], eax
cmp ecx, 9
je 0x497a46
cmp ecx, 2
je 0x497a46
cmp ecx, 0xf
jne 0x497aa9
test eax, eax
jle 0x497aa9
mov ecx, dword [ebp - 0x2440]
lea edx, [eax - 1]
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x54]
test eax, eax
jle 0x497aa9
mov ecx, dword [ebp - 0x1498]
lea esi, [eax - 1]
cmp esi, ecx
jl 0x497a73
cmp esi, dword [ebp - 0x1494]
jl 0x497a91
push esi
lea ecx, [ebp - 0x2440]
call fcn.004727c0
mov ecx, dword [ebp - 0x1498]
cmp esi, ecx
jl 0x497a9e
cmp esi, dword [ebp - 0x1494]
jge 0x497a9e
lea eax, [ebp - 0x243c]
sub eax, ecx
mov al, byte [eax + esi]
jmp 0x497aa0
mov al, 0x20
cmp al, 0x5c
sete byte [ebp - 0x249e]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x497b45
mov esi, eax
sub esi, 1
je 0x497ae2
mov ecx, dword [ebp - 0x2440]
push esi
push ecx
mov eax, dword [ecx]
call dword [eax + 0x10]
movsx eax, al
and eax, 0xffffffbf
cmp eax, 3
jle 0x497ab6
cmp eax, 0xf
je 0x497ab6
cmp eax, 0x11
je 0x497ab6
cmp eax, 0x12
je 0x497ab6
mov ecx, dword [ebp - 0x2440]
push esi
push ecx
mov eax, dword [ecx]
call dword [eax + 0x10]
movsx eax, al
and eax, 0xffffffbf
cmp eax, 0xa
jne 0x497b42
mov ecx, dword [ebp - 0x1498]
cmp esi, ecx
jl 0x497b0c
cmp esi, dword [ebp - 0x1494]
jl 0x497b2a
push esi
lea ecx, [ebp - 0x2440]
call fcn.004727c0
mov ecx, dword [ebp - 0x1498]
cmp esi, ecx
jl 0x497b37
cmp esi, dword [ebp - 0x1494]
jge 0x497b37
lea eax, [ebp - 0x243c]
sub eax, ecx
mov al, byte [eax + esi]
jmp 0x497b39
mov al, 0x20
movsx eax, al
mov dword [ebp - 0x24d4], eax
mov eax, dword [ebp + 0xc]
push 0xffffffffffffffff
lea ecx, [ebp - 0x2440]
push ecx
push edi
push dword [ebp + 0x10]
lea ecx, [ebp - 0x249c]
push eax
call fcn.00476050
mov edi, dword [ebp - 0x24ac]
lea eax, [ebx + 0x5c]
mov dword [ebp - 0x24dc], eax
test edi, edi
jle 0x497bae
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x497bae
lea eax, [edi + edi*2]
mov ecx, dword [esi + eax*4]
mov dword [ebp - 0x2454], ecx
mov ecx, dword [esi + eax*4 + 4]
mov eax, dword [esi + eax*4 + 8]
mov dword [ebp - 0x24a4], ecx
mov dword [ebp - 0x24b8], eax
jmp 0x497bcc
mov dword [ebp - 0x2454], 0
mov dword [ebp - 0x24a4], 0
mov dword [ebp - 0x24b8], 0xffffffff
cmp byte [ebx + 0x18df], 0
mov byte [ebp - 0x24a5], 0
jne 0x497bfa
mov edi, dword [ebx + 0x6c]
mov esi, dword [ebx + 0x68]
cmp esi, edi
je 0x497bf7
mov ecx, esi
call fcn.0049ad40
add esi, 0x50
cmp esi, edi
jne 0x497be6
mov esi, dword [ebx + 0x68]
mov dword [ebx + 0x6c], esi
mov eax, dword [ebx + 0x6c]
lea edi, [ebx + 0x68]
mov esi, dword [edi]
mov dword [ebp - 0x24e0], edi
cmp esi, eax
je 0x497c51
mov ecx, dword [ebp - 0x24ac]
cmp dword [esi], ecx
jge 0x497c1d
add esi, 0x50
cmp esi, eax
jne 0x497c12
cmp esi, eax
je 0x497c51
mov ebx, eax
mov edi, esi
cmp esi, ebx
je 0x497c3e
lea esp, [esp]
mov ecx, edi
call fcn.0049ad40
add edi, 0x50
cmp edi, ebx
jne 0x497c30
mov ebx, dword [ebp - 0x244c]
mov byte [ebp - 0x24a5], 1
mov dword [ebx + 0x6c], esi
lea edi, [ebx + 0x68]
push ecx
lea eax, [ebx + 0x18d4]
push eax
lea ecx, [ebp - 0x24c0]
call fcn.0049d9d0
mov byte [ebp - 4], 4
mov eax, dword [edi + 4]
mov ebx, dword [edi]
mov dword [ebp - 0x24c4], eax
cmp ebx, eax
je 0x497d5b
lea edi, [ebx + 4]
mov edi, edi
cmp byte [edi + 0x30], 0
je 0x497c97
push edi
lea ecx, [ebp - 0x24c0]
call fcn.0049ca70
jmp 0x497d49
lea eax, [edi + 0x18]
push eax
lea ecx, [ebp - 0x40]
call fcn.004146c0
lea eax, [edi + 0x34]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x28]
call fcn.004146c0
push edi
lea ecx, [ebp - 0x24c0]
mov byte [ebp - 4], 6
call fcn.00474690
mov esi, eax
cmp esi, dword [ebp - 0x24c0]
je 0x497cf9
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x497cdb
mov eax, dword [eax]
cmp dword [edi + 0x14], 0x10
mov ecx, edi
jb 0x497ce5
mov ecx, dword [edi]
push edx
mov edx, dword [edi + 0x10]
push eax
call fcn.00474390
shr eax, 0x1f
add esp, 8
test al, al
je 0x497d31
push ecx
lea eax, [ebp - 0x24c8]
mov dword [ebp - 0x24c8], edi
push eax
push ecx
lea ecx, [ebp - 0x24c0]
call fcn.0049f500
push eax
add eax, 0x10
lea ecx, [ebp - 0x24c0]
push eax
push esi
lea eax, [ebp - 0x24b4]
push eax
call fcn.0049f5b0
mov esi, dword [ebp - 0x24b4]
lea eax, [ebp - 0x40]
push eax
lea ecx, [esi + 0x28]
call fcn.004976c0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.004746f0
add ebx, 0x50
add edi, 0x50
cmp ebx, dword [ebp - 0x24c4]
jne 0x497c80
mov ebx, dword [ebp - 0x244c]
mov edi, dword [ebp - 0x24ac]
lea ecx, [ebx + 0x1988]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x24e4], ecx
lea esi, [edi - 1]
cmp eax, dword [ecx + 8]
jne 0x497d9b
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x478], 0xf
mov byte [ebp - 0x48c], 0
jmp 0x497dfe
cmp esi, dword [eax]
jl 0x497d7e
push esi
lea eax, [ebp - 0x24c8]
push eax
call fcn.0049d270
mov ecx, dword [ebx + 0x1990]
mov eax, dword [ebp - 0x24c8]
cmp eax, ecx
jne 0x497de8
mov esi, dword [ebx + 0x198c]
mov eax, 0x92492493
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx*8]
sub eax, ecx
add eax, 0xfffffffa
lea eax, [esi + eax*4]
jmp 0x497df2
cmp dword [eax], esi
jle 0x497def
sub eax, 0x1c
add eax, 4
push eax
lea ecx, [ebp - 0x48c]
call fcn.004146c0
mov dword [ebp - 0x24f0], 0
mov dword [ebp - 0x24ec], 0
mov dword [ebp - 0x24e8], 0
mov dword [ebp - 0x24f4], edi
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x2454]
mov edx, dword [ebx + 0x1998]
neg edi
sbb edi, edi
xor ecx, ecx
and edi, 0x40
mov dword [ebp - 0x2448], edi
test edx, edx
jle 0x497e5b
mov eax, dword [ebx + 0x199c]
jmp 0x497e50
cmp byte [ecx + eax], 0xb
je 0x497e5e
inc ecx
cmp ecx, edx
jl 0x497e50
or ecx, 0xffffffff
mov esi, dword [ebx + 0x19b0]
xor eax, eax
test ecx, ecx
sets al
dec eax
and eax, ecx
xor ecx, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [ebp - 0x2508], eax
test edx, edx
jle 0x497e91
mov eax, dword [ebx + 0x199c]
cmp byte [ecx + eax], 0x11
je 0x497e94
inc ecx
cmp ecx, edx
jl 0x497e86
or ecx, 0xffffffff
mov ebx, dword [ebp - 0x24ac]
xor eax, eax
test ecx, ecx
push ebx
sets al
dec eax
and eax, ecx
mov ecx, dword [ebp - 0x2440]
push ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [ebp - 0x250c], eax
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [ebp - 0x2480]
mov dword [ebp - 0x24c4], eax
cmp ecx, dword [ebp - 0x2494]
jae 0x49ab13
mov ecx, dword [ebp - 0x2464]
jmp 0x497ee0
cmp byte [ebp - 0x2470], 0
mov dword [ebp - 0x24b4], ebx
je 0x497fff
mov ebx, dword [ebp - 0x246c]
cmp ebx, 6
je 0x497f03
cmp ebx, 7
jne 0x497f3b
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
mov ebx, dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
push ebx
sub edi, eax
push edi
call fcn.00475ef0
mov ecx, dword [ebp - 0x2464]
mov edi, dword [ebp - 0x2448]
mov dword [ebp - 0x246c], ebx
mov ebx, dword [ebp - 0x246c]
mov eax, ebx
and eax, 0xffffffbf
cmp eax, 9
jne 0x497f86
cmp byte [ebp - 0x249e], 0
jne 0x497f86
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
push ebx
sub edi, eax
push edi
call fcn.00475ef0
mov edi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dword [ebp - 0x246c], edi
mov esi, dword [ebp - 0x2454]
mov dword [ebp - 0x24d0], 0
mov byte [ebp - 0x249d], 0
mov byte [ebp - 0x244d], 0
mov byte [ebp - 0x249f], 0
test esi, esi
je 0x498221
mov ebx, dword [ebp - 0x246c]
mov esi, ebx
mov edi, dword [ebp - 0x2480]
or esi, 0x40
cmp dword [ebp - 0x2490], edi
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
mov dword [ebp - 0x2448], 0x40
neg eax
inc eax
push ebx
sub edi, eax
push edi
call fcn.00475ef0
mov ecx, dword [ebp - 0x2464]
mov edi, 0x40
mov ebx, dword [ebp - 0x24b4]
mov dword [ebp - 0x246c], esi
mov esi, dword [ebp - 0x2454]
cmp byte [ebp - 0x246f], 0
je 0x4980c1
mov ecx, dword [ebp - 0x2440]
mov edx, dword [ebp - 0x24ac]
inc edx
push edx
mov eax, dword [ecx]
push ecx
mov dword [ebp - 0x24ac], edx
call dword [eax + 0x54]
mov edx, dword [ebp - 0x24dc]
mov ecx, edx
mov dword [ebp - 0x24c4], eax
mov eax, dword [ebp - 0x24ac]
push edx
inc eax
push eax
call fcn.0049dda0
cmp dword [ebp - 0x478], 0x10
mov eax, dword [ebp - 0x24ac]
mov edx, dword [ebp - 0x24a4]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x24dc]
mov eax, dword [eax]
mov dword [eax + ecx*4], esi
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x24b8]
mov dword [eax + ecx*4 + 8], edx
lea ecx, [ebp - 0x48c]
jb 0x498085
mov ecx, dword [ebp - 0x48c]
mov edx, dword [ebp - 0x47c]
push 0
push 0x5addb6
call fcn.00436600
add esp, 8
test al, al
jne 0x4980bb
sub esp, 0x18
lea eax, [ebp - 0x48c]
mov ecx, esp
push eax
call fcn.004146c0
push ebx
lea ecx, [ebp - 0x24f4]
call fcn.0049c8a0
mov ecx, dword [ebp - 0x2464]
mov ebx, dword [ebp - 0x24ac]
mov esi, ebx
cmp ecx, 0x5c
jne 0x4982e7
mov eax, dword [ebp - 0x2480]
inc eax
cmp eax, dword [ebp - 0x24c4]
jb 0x4982e7
mov ecx, dword [ebp - 0x2440]
inc ebx
push ebx
push ecx
mov dword [ebp - 0x24ac], ebx
mov eax, dword [ecx]
call dword [eax + 0x54]
mov edi, dword [ebp - 0x24dc]
mov ecx, edi
mov dword [ebp - 0x24c4], eax
lea eax, [ebx + 1]
push edi
push eax
call fcn.0049dda0
cmp dword [ebp - 0x478], 0x10
lea ecx, [ebx + ebx*2]
mov eax, dword [edi]
mov edx, dword [ebp - 0x2454]
mov dword [eax + ecx*4], edx
mov edx, dword [ebp - 0x24a4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x24b8]
mov dword [eax + ecx*4 + 8], edx
lea ecx, [ebp - 0x48c]
jb 0x498148
mov ecx, dword [ebp - 0x48c]
mov edx, dword [ebp - 0x47c]
push 0
push 0x5addb7
call fcn.00436600
add esp, 8
test al, al
jne 0x49817e
sub esp, 0x18
lea eax, [ebp - 0x48c]
mov ecx, esp
push eax
call fcn.004146c0
push esi
lea ecx, [ebp - 0x24f4]
call fcn.0049c8a0
mov eax, dword [ebp - 0x2480]
cmp eax, dword [ebp - 0x2494]
jae 0x49822c
mov al, byte [ebp - 0x246f]
mov byte [ebp - 0x2470], al
test al, al
je 0x4981c7
mov esi, dword [ebp - 0x247c]
mov eax, dword [ebp - 0x249c]
inc esi
mov dword [ebp - 0x247c], esi
mov edx, dword [eax]
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
lea eax, [esi + 1]
push eax
push edx
call ecx
mov dword [ebp - 0x2474], eax
mov eax, dword [ebp - 0x2464]
lea ecx, [ebp - 0x249c]
mov dword [ebp - 0x2468], eax
mov eax, dword [ebp - 0x2460]
add dword [ebp - 0x2480], eax
mov eax, dword [ebp - 0x245c]
mov dword [ebp - 0x2464], eax
mov eax, dword [ebp - 0x2458]
mov dword [ebp - 0x2460], eax
call fcn.00475fb0
cmp dword [ebp - 0x2464], 0xd
jne 0x498251
cmp dword [ebp - 0x245c], 0xa
jne 0x498251
lea ecx, [ebp - 0x249c]
call fcn.004761d0
jmp 0x498251
mov ebx, dword [ebp - 0x24b4]
jmp 0x498005
mov dword [ebp - 0x2468], 0x20
mov dword [ebp - 0x2464], 0x20
mov dword [ebp - 0x245c], 0x20
mov byte [ebp - 0x246f], 1
mov eax, dword [ebp - 0x2480]
mov byte [ebp - 0x249e], 1
cmp eax, dword [ebp - 0x2494]
jae 0x49aada
mov al, byte [ebp - 0x246f]
mov byte [ebp - 0x2470], al
test al, al
je 0x4982a1
mov esi, dword [ebp - 0x247c]
mov eax, dword [ebp - 0x249c]
inc esi
mov dword [ebp - 0x247c], esi
mov edx, dword [eax]
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
lea eax, [esi + 1]
push eax
push edx
call ecx
mov dword [ebp - 0x2474], eax
mov eax, dword [ebp - 0x2464]
lea ecx, [ebp - 0x249c]
mov dword [ebp - 0x2468], eax
mov eax, dword [ebp - 0x2460]
add dword [ebp - 0x2480], eax
mov eax, dword [ebp - 0x245c]
mov dword [ebp - 0x2464], eax
mov eax, dword [ebp - 0x2458]
mov dword [ebp - 0x2460], eax
call fcn.00475fb0
mov ecx, dword [ebp - 0x2464]
jmp 0x49aafa
mov eax, dword [ebp - 0x246c]
mov dl, byte [ebp - 0x246f]
and eax, 0xffffffbf
dec eax
mov byte [ebp - 0x2441], dl
cmp eax, 0x1a
ja case.default.0x498306
jmp dword [eax*4 + 0x49acc8]
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
cmp ecx, 0x5f
jne 0x49836a
mov esi, dword [ebp - 0x2448]
mov eax, esi
or eax, 0x19
mov dword [ebp - 0x246c], eax
jmp 0x49913f
test ecx, ecx
js 0x49838c
mov eax, dword [ebp - 0x244c]
cmp ecx, dword [eax + 8]
jge 0x498381
mov eax, dword [eax + 0x10]
mov al, byte [ecx + eax]
jmp 0x498384
mov al, byte [eax + 0xc]
test al, al
jne case.default.0x498306
cmp ecx, 0x27
je case.default.0x498306
cmp ecx, 0x2b
je 0x49839f
cmp ecx, 0x2d
jne 0x4983c9
mov eax, dword [ebp - 0x2468]
cmp eax, 0x65
je case.default.0x498306
cmp eax, 0x45
je case.default.0x498306
cmp eax, 0x70
je case.default.0x498306
cmp eax, 0x50
je case.default.0x498306
mov esi, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
push esi
call fcn.00476250
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x49913f
test ecx, ecx
js 0x49840e
mov edi, dword [ebp - 0x244c]
cmp ecx, dword [edi + 8]
jge 0x498403
mov eax, dword [edi + 0x10]
mov al, byte [ecx + eax]
jmp 0x498406
mov al, byte [edi + 0xc]
test al, al
jne 0x4990c0
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
cmp byte [ebp - 0x2470], 0
mov edi, dword [ebp - 0x244c]
jne 0x498484
test dl, dl
jne 0x498484
test ecx, ecx
js 0x498484
cmp ecx, dword [edi + 8]
jge 0x498474
mov eax, dword [edi + 0x10]
mov al, byte [ecx + eax]
jmp 0x498477
mov al, byte [edi + 0xc]
test al, al
je 0x498484
cmp ecx, 0x2e
jne 0x4992ed
cmp byte [edi + 4], 0
lea eax, [ebp - 0x45c]
push 0x3e8
lea ecx, [ebp - 0x249c]
push eax
je 0x4984a3
call fcn.00475080
jmp 0x4984a8
call fcn.00475100
lea eax, [ebp - 0x45c]
lea ecx, [edi + 0x74]
push eax
call fcn.00475500
test al, al
lea eax, [ebp - 0x45c]
je 0x49850a
mov ecx, 0x5b6094
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4984e6
test dl, dl
je 0x4984e2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4984e6
add eax, 2
add ecx, 2
test dl, dl
jne 0x4984c6
xor eax, eax
jmp 0x4984eb
sbb eax, eax
or eax, 1
mov esi, dword [ebp - 0x2448]
test eax, eax
mov edi, esi
sete byte [ebp - 0x249d]
or edi, 5
mov dword [ebp - 0x246c], edi
jmp 0x498654
lea ecx, [edi + 0x484]
push eax
call fcn.00475500
test al, al
je 0x498530
mov esi, dword [ebp - 0x2448]
mov edi, esi
or edi, 0x10
mov dword [ebp - 0x246c], edi
jmp 0x498654
lea eax, [ebp - 0x45c]
lea ecx, [edi + 0xca4]
push eax
call fcn.00475500
test al, al
je 0x49855c
mov esi, dword [ebp - 0x2448]
mov edi, esi
or edi, 0x13
mov dword [ebp - 0x246c], edi
jmp 0x498654
lea ecx, [ebp - 0x45c]
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x474], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x498580
sub ecx, edx
lea eax, [ebp - 0x45c]
push ecx
push eax
lea ecx, [ebp - 0x474]
call fcn.0040af10
mov edi, dword [ebp - 0x2508]
lea eax, [ebp - 0x474]
push eax
lea ecx, [edi + 0xc]
call fcn.00474690
mov edi, dword [edi + 0xc]
mov esi, eax
mov ebx, dword [ebp - 0x474]
cmp esi, edi
je 0x4985f6
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x4985ce
mov eax, dword [eax]
cmp dword [ebp - 0x460], 0x10
lea ecx, [ebp - 0x474]
jb 0x4985df
mov ecx, ebx
push edx
mov edx, dword [ebp - 0x464]
push eax
call fcn.00474390
shr eax, 0x1f
add esp, 8
test al, al
je 0x4985f8
mov esi, edi
cmp esi, edi
je 0x498601
mov edi, dword [esi + 0x28]
jmp 0x498604
or edi, 0xffffffff
mov eax, dword [ebp - 0x460]
cmp eax, 0x10
jb 0x49863a
lea ecx, [eax + 1]
mov eax, ebx
cmp ecx, 0x1000
jb 0x498630
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49ac00
push ecx
push ebx
call fcn.0059e222
add esp, 8
mov esi, dword [ebp - 0x2448]
test edi, edi
js 0x49864e
or edi, esi
mov dword [ebp - 0x246c], edi
jmp 0x498654
mov edi, dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x2464]
cmp ecx, 0x22
sete bh
je 0x49869e
cmp ecx, 0x27
je 0x49869e
push edi
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
lea edx, [ebp - 0x45c]
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4986a7
sub edx, esi
test bh, bh
je 0x4986f6
cmp dword [ebp - 0x2468], 0x52
jne 0x4986f6
mov esi, dword [ebp - 0x245c]
test esi, esi
js 0x4986dc
cmp esi, 0x80
jge 0x4986dc
mov eax, dword [ebp - 0x251c]
mov al, byte [eax + esi]
test al, al
jne 0x4986f6
mov eax, edx
mov bl, 1
dec edx
cmp eax, 0x3e8
jae 0x49acc1
mov byte [ebp + eax - 0x45c], 0
jmp 0x4986f8
xor bl, bl
test edx, edx
je 0x49876b
cmp edx, 1
jne 0x498713
mov al, byte [ebp - 0x45c]
cmp al, 0x4c
je 0x49876b
cmp al, 0x75
je 0x49876b
cmp al, 0x55
jmp 0x49872c
cmp edx, 2
jne 0x49872e
test bh, bh
je 0x49872e
cmp byte [ebp - 0x45c], 0x75
jne 0x49872e
cmp byte [ebp - 0x45b], 0x38
je 0x49876b
push edi
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
mov esi, dword [ebp - 0x2448]
mov eax, esi
test bh, bh
je 0x4987b5
test bl, bl
je 0x4987a1
or eax, 0x14
lea ecx, [ebp - 0x249c]
push esi
mov dword [ebp - 0x246c], eax
call fcn.00476250
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x49913f
mov dl, byte [ebp - 0x2441]
or eax, 6
mov dword [ebp - 0x246c], eax
jmp 0x49913f
mov dl, byte [ebp - 0x2441]
or eax, 7
mov dword [ebp - 0x246c], eax
jmp 0x49913f
mov edi, dword [ebp - 0x244c]
cmp byte [edi + 0x18dc], 0
je 0x498832
cmp ecx, 0x20
je 0x4987f0
cmp ecx, 9
jl 0x4987e7
cmp ecx, 0xd
jle 0x4987f0
cmp ecx, 0x28
jne 0x4990c0
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
cmp byte [ebp - 0x24ad], 0
je 0x498865
cmp ecx, 0x3e
je 0x498852
cmp ecx, 0x22
je 0x498852
cmp byte [ebp - 0x246f], 0
je 0x4992ed
mov esi, dword [ebp - 0x2448]
xor al, al
mov byte [ebp - 0x24ad], al
jmp 0x499145
cmp byte [ebp - 0x244d], 0
je 0x498873
cmp ecx, 0x3c
je 0x498878
cmp ecx, 0x22
jne 0x49888a
mov esi, dword [ebp - 0x2448]
mov byte [ebp - 0x24ad], 1
jmp 0x499145
cmp ecx, 0x2f
jne 0x4990c0
cmp dword [ebp - 0x245c], 0x2a
jne 0x498904
push 0x5b609c
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
jne 0x4988d1
push 0x5b60a8
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
jne 0x4988d1
mov esi, dword [ebp - 0x2448]
mov eax, esi
or eax, 0x17
jmp 0x4988dc
mov esi, dword [ebp - 0x2448]
mov eax, esi
or eax, 0x18
push eax
lea ecx, [ebp - 0x249c]
call fcn.00476250
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x499145
cmp ecx, 0x2f
jne 0x4990c0
mov esi, dword [ebp - 0x2448]
cmp dword [ebp - 0x245c], ecx
jne 0x499145
push esi
lea ecx, [ebp - 0x249c]
call fcn.00476250
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x499145
cmp ecx, 0x2a
jne case.default.0x498306
cmp dword [ebp - 0x245c], 0x2f
jne case.default.0x498306
lea ecx, [ebp - 0x249c]
call fcn.004761d0
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov ecx, dword [ebp - 0x2464]
mov eax, edi
or eax, 9
mov dword [ebp - 0x246c], eax
jmp 0x49aafa
cmp ecx, 0x2a
jne 0x4989d2
cmp dword [ebp - 0x245c], 0x2f
jne 0x4989d2
lea ecx, [ebp - 0x249c]
call fcn.004761d0
lea ecx, [ebp - 0x249c]
call fcn.004761d0
push dword [ebp - 0x246c]
jmp 0x49872f
mov dword [ebp - 0x24d8], 1
mov edi, dword [ebp - 0x244c]
lea edx, [ebp - 0x2440]
mov esi, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
movzx eax, byte [edi + 4]
push eax
lea eax, [edi + 0x14c4]
push eax
push esi
call fcn.004954b0
mov ecx, dword [ebp - 0x2464]
add esp, 0xc
mov dl, byte [ebp - 0x2441]
jmp 0x499145
cmp ecx, 0x2a
jne 0x498a28
cmp dword [ebp - 0x245c], 0x2f
je 0x4989b1
cmp ecx, 0x40
je 0x498a36
cmp ecx, 0x5c
jne case.default.0x498306
mov eax, dword [ebp - 0x2468]
cmp eax, 0x20
je 0x498a58
cmp eax, 9
jl 0x498a4b
cmp eax, 0xd
jle 0x498a58
cmp dword [ebp - 0x2468], 0x2a
jne case.default.0x498306
mov esi, dword [ebp - 0x245c]
cmp esi, 0x20
je case.default.0x498306
cmp esi, 9
jl 0x498a75
cmp esi, 0xd
jle case.default.0x498306
mov esi, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
mov eax, esi
mov dword [ebp - 0x24cc], 3
or eax, 0x11
push eax
call fcn.00476250
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x49913f
cmp byte [ebp - 0x2470], 0
je 0x498ad8
cmp byte [ebp - 0x249e], 0
jne 0x498ad8
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
jmp 0x498743
mov dword [ebp - 0x24d8], 2
jmp 0x4989dc
cmp byte [ebp - 0x2470], 0
je 0x498af9
cmp byte [ebp - 0x249e], 0
je 0x498ab9
cmp ecx, 0x40
je 0x498b07
cmp ecx, 0x5c
jne case.default.0x498306
mov eax, dword [ebp - 0x2468]
cmp eax, 0x20
je 0x498b30
cmp eax, 9
jl 0x498b1c
cmp eax, 0xd
jle 0x498b30
mov eax, dword [ebp - 0x2468]
cmp eax, 0x2f
je 0x498b30
cmp eax, 0x21
jne case.default.0x498306
mov esi, dword [ebp - 0x245c]
cmp esi, 0x20
je case.default.0x498306
cmp esi, 9
jl 0x498b4d
cmp esi, 0xd
jle case.default.0x498306
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
mov dword [ebp - 0x24cc], 0xf
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov eax, esi
mov ecx, dword [ebp - 0x2464]
or eax, 0x11
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], eax
jmp 0x49913f
cmp dword [ebp - 0x24cc], 3
jne 0x498c1e
cmp ecx, 0x2a
jne 0x498c1e
cmp dword [ebp - 0x245c], 0x2f
jne 0x498c1e
lea ecx, [ebp - 0x249c]
mov dword [ebp - 0x246c], 0x12
call fcn.004761d0
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov byte [ebp - 0x24a6], 0
mov dword [ebp - 0x246c], esi
jmp 0x49913f
cmp ecx, 0x5b
je 0x498dcc
cmp ecx, 0x7b
je 0x498dcc
test ecx, ecx
js 0x498c4d
cmp ecx, 0x80
jge 0x498c4d
mov eax, dword [ebp - 0x2528]
mov al, byte [eax + ecx]
test al, al
jne case.default.0x498306
cmp byte [ebp - 0x24a6], 0
je 0x498c68
cmp ecx, 0x2c
je case.default.0x498306
cmp ecx, 0x2e
je case.default.0x498306
mov edi, dword [ebp - 0x244c]
lea eax, [ebp - 0x74]
push 0x64
lea ecx, [ebp - 0x249c]
push eax
cmp byte [edi + 4], 0
je 0x498c87
call fcn.00475080
jmp 0x498c8c
call fcn.00475100
mov eax, dword [ebp - 0x2464]
cmp eax, 0x20
je 0x498cbb
cmp eax, 9
jl 0x498ca1
cmp eax, 0xd
jle 0x498cbb
test eax, eax
je 0x498cbb
mov esi, dword [ebp - 0x2448]
mov eax, esi
or eax, 0x12
mov dword [ebp - 0x246c], eax
jmp 0x498d9f
lea eax, [ebp - 0x73]
lea ecx, [edi + 0x894]
push eax
call fcn.00475500
test al, al
jne 0x498d99
lea eax, [ebp - 0x73]
push eax
lea ecx, [ebp - 0x474]
call fcn.00415bf0
mov edi, dword [ebp - 0x250c]
lea eax, [ebp - 0x474]
push eax
lea ecx, [edi + 0xc]
call fcn.00474690
mov ebx, dword [edi + 0xc]
mov esi, eax
mov edi, dword [ebp - 0x474]
cmp esi, ebx
je 0x498d3b
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x498d13
mov eax, dword [eax]
cmp dword [ebp - 0x460], 0x10
lea ecx, [ebp - 0x474]
jb 0x498d24
mov ecx, edi
push edx
mov edx, dword [ebp - 0x464]
push eax
call fcn.00474390
shr eax, 0x1f
add esp, 8
test al, al
je 0x498d3d
mov esi, ebx
cmp esi, ebx
je 0x498d46
mov esi, dword [esi + 0x28]
jmp 0x498d49
or esi, 0xffffffff
mov eax, dword [ebp - 0x460]
cmp eax, 0x10
jb 0x498d7f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x498d75
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49ac00
push ecx
push edi
call fcn.0059e222
add esp, 8
mov edi, dword [ebp - 0x244c]
test esi, esi
js 0x498ca5
or esi, dword [ebp - 0x2448]
mov dword [ebp - 0x246c], esi
mov esi, dword [ebp - 0x2448]
mov eax, esi
lea ecx, [ebp - 0x249c]
or eax, dword [ebp - 0x24cc]
push eax
call fcn.00476250
mov ecx, dword [ebp - 0x2464]
xor al, al
mov dl, byte [ebp - 0x2441]
mov byte [ebp - 0x24a6], al
jmp 0x499145
mov byte [ebp - 0x24a6], 1
jmp case.default.0x498306
test dl, dl
je 0x498df2
mov esi, dword [ebp - 0x2448]
mov eax, esi
or eax, 0xc
mov dword [ebp - 0x246c], eax
jmp 0x49913f
cmp byte [ebp - 0x244d], 0
je 0x498e58
cmp ecx, 0x3e
jne 0x4992e7
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov byte [ebp - 0x244d], 0
mov dword [ebp - 0x246c], esi
jmp 0x49913f
cmp ecx, 0x5c
jne 0x498f6b
mov edi, dword [ebp - 0x244c]
mov esi, dword [ebp - 0x2448]
cmp byte [edi + 0x18e4], 0
je 0x498f4f
mov eax, esi
lea ecx, [ebp - 0x249c]
or eax, 0x1b
push eax
call fcn.00476250
mov edx, dword [ebp - 0x245c]
lea ecx, [edi + 0x195c]
mov dword [ecx + 0x28], 0
lea eax, [ecx + 0x18]
mov dword [ecx + 0x24], eax
cmp edx, 0x55
jne 0x498ecf
mov dword [ecx + 0x28], 9
mov dword [ecx + 0x24], ecx
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x499145
cmp edx, 0x75
jne 0x498efa
mov dword [ecx + 0x28], 5
mov dword [ecx + 0x24], ecx
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x499145
cmp edx, 0x78
jne 0x498f25
mov dword [ecx + 0x28], 5
mov dword [ecx + 0x24], ecx
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x499145
lea esi, [ecx + 0xc]
test edx, edx
js 0x498f49
cmp edx, dword [esi]
jge 0x498f38
mov eax, dword [esi + 8]
mov al, byte [edx + eax]
jmp 0x498f3b
mov al, byte [esi + 4]
test al, al
je 0x498f49
mov dword [ecx + 0x28], 3
mov dword [ecx + 0x24], esi
mov esi, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x499145
cmp ecx, 0x22
jne 0x4992e7
cmp dword [ebp - 0x245c], 0x5f
jne 0x4989bc
mov esi, dword [ebp - 0x2448]
mov eax, esi
mov edi, dword [ebp - 0x244c]
or eax, 0x19
mov dword [ebp - 0x246c], eax
jmp 0x4992f3
mov edi, dword [ebp - 0x244c]
dec dword [edi + 0x1984]
cmp dword [edi + 0x1984], 0
jle 0x498fd3
mov eax, dword [edi + 0x1980]
test ecx, ecx
js 0x498fd3
cmp ecx, dword [eax]
jge 0x498fc8
mov eax, dword [eax + 8]
mov al, byte [ecx + eax]
jmp 0x498fcb
mov al, byte [eax + 4]
test al, al
jne 0x4990c0
cmp ecx, 0x22
jne 0x499024
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
mov eax, esi
or eax, 6
mov dword [ebp - 0x246c], eax
call fcn.004761d0
push dword [ebp - 0x246c]
jmp 0x498668
cmp ecx, 0x5c
jne 0x4990c8
cmp dword [ebp - 0x245c], 0x55
lea ecx, [edi + 0x195c]
lea eax, [ecx + 0x18]
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x24], eax
jne 0x499055
mov dword [ecx + 0x28], 9
mov dword [ecx + 0x24], ecx
jmp 0x4990a9
cmp dword [ebp - 0x245c], 0x75
jne 0x49906a
mov dword [ecx + 0x28], 5
mov dword [ecx + 0x24], ecx
jmp 0x4990a9
cmp dword [ebp - 0x245c], 0x78
jne 0x49907f
mov dword [ecx + 0x28], 5
mov dword [ecx + 0x24], ecx
jmp 0x4990a9
mov esi, dword [ebp - 0x245c]
lea edx, [ecx + 0xc]
test esi, esi
js 0x4990a9
cmp esi, dword [edx]
jge 0x499098
mov eax, dword [edx + 8]
mov al, byte [esi + eax]
jmp 0x49909b
mov al, byte [edx + 4]
test al, al
je 0x4990a9
mov dword [ecx + 0x28], 3
mov dword [ecx + 0x24], edx
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov esi, dword [ebp - 0x2448]
jmp 0x499145
mov esi, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
mov eax, esi
or eax, 6
push eax
call fcn.00476250
cmp byte [ebp - 0x246f], 0
mov ecx, dword [ebp - 0x2464]
je 0x4992f3
mov dl, byte [ebp - 0x2441]
mov eax, esi
or eax, 0xc
mov dword [ebp - 0x246c], eax
jmp 0x499145
cmp ecx, 0x5c
jne 0x4991b5
mov esi, dword [ebp - 0x245c]
cmp esi, 0x22
je 0x499122
cmp esi, 0x27
je 0x499122
cmp esi, ecx
jne case.default.0x498306
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov dl, byte [ebp - 0x2441]
mov ecx, dword [ebp - 0x2464]
mov esi, dword [ebp - 0x2448]
mov edi, dword [ebp - 0x244c]
cmp byte [ebp - 0x246f], 0
je 0x4992f3
test dl, dl
jne 0x4992f3
mov ecx, dword [ebp - 0x2440]
mov ebx, dword [ebp - 0x24ac]
inc ebx
push ebx
mov eax, dword [ecx]
push ecx
mov dword [ebp - 0x24ac], ebx
call dword [eax + 0x54]
lea ecx, [edi + 0x5c]
mov dword [ebp - 0x24c4], eax
push ecx
lea eax, [ebx + 1]
push eax
call fcn.0049dda0
mov eax, dword [edi + 0x5c]
lea ecx, [ebx + ebx*2]
mov edx, dword [ebp - 0x2454]
mov dword [eax + ecx*4], edx
mov edx, dword [ebp - 0x24a4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x24b8]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [ebp - 0x2464]
jmp 0x4992f3
cmp ecx, 0x22
jne case.default.0x498306
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
cmp dword [ebp - 0x478], 0x10
lea eax, [ebp - 0x48c]
jb 0x499220
mov eax, dword [ebp - 0x48c]
push eax
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x49912d
mov esi, dword [ebp - 0x47c]
test esi, esi
je 0x499250
mov edi, edi
lea ecx, [ebp - 0x249c]
call fcn.004761d0
sub esi, 1
jne 0x499240
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
lea ecx, [ebp - 0x48c]
push 0
push 0x5ade56
mov dword [ebp - 0x246c], esi
call fcn.0040af10
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x49913f
test dl, dl
je 0x4992be
mov esi, dword [ebp - 0x2448]
mov eax, esi
or eax, 0xc
mov dword [ebp - 0x246c], eax
jmp 0x49913f
cmp ecx, 0x5c
jne 0x499355
mov esi, dword [ebp - 0x245c]
cmp esi, 0x22
je 0x499122
cmp esi, 0x27
je 0x499122
cmp esi, ecx
je 0x499122
mov edi, dword [ebp - 0x244c]
mov esi, dword [ebp - 0x2448]
mov ebx, dword [ebp - 0x246c]
mov eax, ebx
and eax, 0xffffffbf
jne 0x49aa03
cmp ecx, 0x40
jne 0x49969a
cmp dword [ebp - 0x245c], 0x22
jne 0x49969a
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
push ebx
sub edi, eax
push edi
call fcn.00475ef0
mov eax, esi
lea ecx, [ebp - 0x249c]
or eax, 0xd
mov dword [ebp - 0x246c], eax
call fcn.004761d0
jmp 0x49a9fd
cmp ecx, 0x27
jne 0x4992e7
cmp dword [ebp - 0x245c], 0x5f
jne 0x4991be
mov esi, dword [ebp - 0x2448]
mov eax, esi
mov edi, dword [ebp - 0x244c]
or eax, 0x19
mov dword [ebp - 0x246c], eax
jmp 0x4992f3
cmp byte [ebp - 0x2470], 0
je 0x4993ce
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
cmp byte [ebp - 0x249f], 0
jne 0x499418
cmp ecx, 0x2f
jne 0x499418
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov eax, dword [ebp - 0x2464]
lea ecx, [ebp - 0x249c]
add eax, 0xffffff9f
cmp eax, 0x19
jbe 0x4993e2
mov esi, dword [ebp - 0x2448]
push esi
call fcn.00476250
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
jmp 0x49913f
cmp ecx, 0x5c
jne 0x499435
mov eax, dword [ebp - 0x2480]
inc eax
cmp eax, dword [ebp - 0x24c4]
jae case.default.0x498306
jmp 0x499122
cmp ecx, 0x5b
jne 0x499446
mov byte [ebp - 0x249f], 1
jmp case.default.0x498306
mov esi, dword [ebp - 0x2448]
mov edi, dword [ebp - 0x244c]
cmp ecx, 0x5d
jne 0x499145
xor al, al
mov byte [ebp - 0x249f], al
jmp 0x499145
cmp byte [ebp - 0x2470], 0
je case.default.0x498306
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
mov edi, dword [ebp - 0x244c]
cmp byte [edi + 0x18e0], 0
je 0x4994cf
cmp ecx, 0x5c
je 0x4990a9
cmp ecx, 0x22
jne 0x4990c0
cmp dword [ebp - 0x245c], 0x22
lea ecx, [ebp - 0x249c]
jne 0x499503
call fcn.004761d0
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov esi, dword [ebp - 0x2448]
jmp 0x499145
call fcn.004761d0
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x499145
push 0x5b60a0
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x49912d
cmp dword [ebp - 0x2464], 0x22
jne 0x499584
jmp 0x499570
lea ecx, [ebp - 0x249c]
call fcn.004761d0
cmp dword [ebp - 0x2464], 0x22
je 0x499570
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
test dl, dl
jne 0x4995d3
cmp ecx, 0x29
jne 0x4992e7
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], esi
jmp 0x49913f
call fcn.0047c500
test al, al
jne 0x499635
cmp ecx, 0x20
je 0x499635
cmp ecx, 9
jl case.default.0x498306
cmp ecx, 0xd
jg case.default.0x498306
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov esi, dword [ebp - 0x2448]
mov eax, esi
or eax, dword [ebp - 0x24d8]
mov ecx, dword [ebp - 0x2464]
mov dl, byte [ebp - 0x2441]
mov dword [ebp - 0x246c], eax
mov dword [ebp - 0x24d8], 0
jmp 0x49913f
mov edi, dword [ebp - 0x244c]
mov esi, dword [ebp - 0x2448]
jmp 0x499145
cmp byte [edi + 0x18e1], 0
je 0x49970b
push 0x5b60a4
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x499705
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov eax, esi
mov esi, 2
or eax, 0x15
mov dword [ebp - 0x246c], eax
lea esp, [esp]
lea ecx, [ebp - 0x249c]
call fcn.004761d0
sub esi, 1
jne 0x4996f0
jmp 0x49a9fd
mov ecx, dword [ebp - 0x2464]
cmp byte [edi + 0x18e2], 0
je 0x499762
cmp ecx, 0x23
jne 0x499762
cmp dword [ebp - 0x245c], 0x22
jne 0x499762
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov eax, esi
lea ecx, [ebp - 0x249c]
or eax, 0x16
mov dword [ebp - 0x246c], eax
call fcn.004761d0
jmp 0x49a9fd
cmp byte [edi + 0x18e3], 0
je 0x4997b7
cmp ecx, 0x60
jne 0x4997b7
mov edi, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], edi
push dword [ebp - 0x246c]
mov ecx, dword [ebp - 0x249c]
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov eax, esi
lea ecx, [ebp - 0x48c]
push 1
or eax, 0x14
push 0x5b60b4
mov dword [ebp - 0x246c], eax
call fcn.0040af10
jmp 0x49a9fd
lea eax, [ecx - 0x30]
cmp eax, 9
jbe 0x49a9c0
cmp ecx, 0x2e
jne 0x4997da
mov eax, dword [ebp - 0x245c]
add eax, 0xffffffd0
cmp eax, 9
jbe 0x49a9c0
cmp byte [ebp - 0x246f], 0
jne 0x499863
test ecx, ecx
js 0x499802
cmp ecx, dword [edi + 0x50]
lea eax, [edi + 0x50]
jge 0x4997fb
mov eax, dword [eax + 8]
mov al, byte [ecx + eax]
jmp 0x4997fe
mov al, byte [eax + 4]
test al, al
jne 0x499807
cmp ecx, 0x40
jne 0x499863
cmp byte [ebp - 0x249d], 0
push dword [ebp - 0x246c]
mov edi, dword [ebp - 0x2480]
mov ecx, dword [ebp - 0x249c]
je 0x499846
cmp dword [ebp - 0x2490], edi
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov eax, esi
mov byte [ebp - 0x249d], 0
or eax, 8
jmp 0x49a9f7
cmp dword [ebp - 0x2490], edi
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov eax, esi
or eax, 0xb
jmp 0x49a9f7
cmp ecx, 0x2f
jne 0x499b75
cmp dword [ebp - 0x245c], 0x2a
jne 0x499921
push 0x5b60b8
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
jne 0x4998e1
push 0x5b60ac
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
jne 0x4998e1
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov eax, esi
lea ecx, [ebp - 0x249c]
or eax, 1
mov dword [ebp - 0x246c], eax
call fcn.004761d0
jmp 0x49a9fd
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov eax, esi
lea ecx, [ebp - 0x249c]
or eax, 3
mov dword [ebp - 0x246c], eax
call fcn.004761d0
jmp 0x49a9fd
cmp ecx, 0x2f
jne 0x499b75
cmp dword [ebp - 0x245c], ecx
jne 0x4999b7
push 0x5b60b0
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x49995e
push 0x5b60c8
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x499972
push 0x5b60d0
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x4999a1
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov eax, esi
or eax, 0xf
jmp 0x49a9f7
mov eax, esi
lea ecx, [ebp - 0x249c]
or eax, 2
push eax
call fcn.00476250
jmp 0x49a9fd
cmp ecx, 0x2f
jne 0x499b75
mov eax, dword [ebp - 0x24d4]
test eax, eax
js 0x4999e2
cmp eax, 0x80
jge 0x4999e2
mov ecx, dword [ebp - 0x2510]
mov al, byte [ecx + eax]
test al, al
jne 0x499ab9
mov ecx, dword [ebp - 0x2440]
mov edi, dword [ebp - 0x2480]
push edi
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov edx, dword [ebp - 0x2440]
push eax
push edx
mov ecx, dword [edx]
call dword [ecx + 0x18]
mov ebx, eax
dec edi
cmp edi, ebx
jle 0x499a58
lea esp, [esp]
cmp edi, dword [ebp - 0x1498]
jl 0x499a20
cmp edi, dword [ebp - 0x1494]
jl 0x499a3c
push edi
lea ecx, [ebp - 0x2440]
call fcn.004727c0
cmp edi, dword [ebp - 0x1498]
jl 0x499a53
cmp edi, dword [ebp - 0x1494]
jge 0x499a53
mov eax, edi
sub eax, dword [ebp - 0x1498]
mov al, byte [ebp + eax - 0x243c]
cmp al, 0x20
je 0x499a53
cmp al, 9
jne 0x499a58
dec edi
cmp edi, ebx
jg 0x499a10
mov esi, str.nruter
lea ecx, [ecx]
cmp edi, ebx
jl 0x499ab0
cmp edi, dword [ebp - 0x1498]
jl 0x499a74
cmp edi, dword [ebp - 0x1494]
jl 0x499a90
push edi
lea ecx, [ebp - 0x2440]
call fcn.004727c0
cmp edi, dword [ebp - 0x1498]
jl 0x499aa1
cmp edi, dword [ebp - 0x1494]
jge 0x499aa1
mov eax, edi
sub eax, dword [ebp - 0x1498]
mov al, byte [ebp + eax - 0x243c]
jmp 0x499aa3
mov al, 0x20
cmp al, byte [esi]
jne 0x499ab0
inc esi
dec edi
cmp byte [esi], 0
jne 0x499a60
jmp 0x499ab9
cmp byte [esi], 0
jne 0x499b69
mov eax, dword [ebp - 0x24d4]
lea ecx, [ebp - 0x253c]
push eax
call fcn.0047c4d0
test al, al
je 0x499b48
mov esi, dword [ebp - 0x2480]
dec esi
test esi, esi
jle 0x499b48
lea ebx, [ebx]
cmp esi, dword [ebp - 0x1498]
jl 0x499af0
cmp esi, dword [ebp - 0x1494]
jl 0x499afc
push esi
lea ecx, [ebp - 0x2440]
call fcn.004727c0
mov eax, esi
sub eax, dword [ebp - 0x1498]
mov bl, byte [ebp + eax - 0x243c]
cmp bl, 0x2b
je 0x499b1c
cmp bl, 0x2d
je 0x499b1c
dec esi
test esi, esi
jg 0x499ae0
jmp 0x499b48
dec esi
cmp esi, dword [ebp - 0x1498]
jl 0x499b2d
cmp esi, dword [ebp - 0x1494]
jl 0x499b39
push esi
lea ecx, [ebp - 0x2440]
call fcn.004727c0
sub esi, dword [ebp - 0x1498]
cmp byte [ebp + esi - 0x243c], bl
je 0x499b69
mov eax, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
or eax, 0xe
push eax
call fcn.00476250
mov byte [ebp - 0x249f], 0
jmp 0x49a9fd
mov ecx, dword [ebp - 0x2464]
mov edi, dword [ebp - 0x244c]
cmp ecx, 0x22
jne 0x499cf3
cmp dword [ebp - 0x2468], 0x52
jne 0x499cd2
lea ecx, [ebp - 0x2440]
call fcn.004733a0
mov ecx, dword [ebp - 0x2440]
mov edx, dword [ebp - 0x2480]
dec edx
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0x10]
and al, 0xbf
lea ecx, [ebp - 0x249c]
cmp al, 0x14
mov eax, dword [ebp - 0x2448]
jne 0x499cde
or eax, 0x14
push eax
call fcn.00476250
push 1
push 0x5b60bc
lea ecx, [ebp - 0x48c]
call fcn.0040af10
mov edi, dword [ebp - 0x2480]
lea ecx, [ebp - 0x2440]
push 0x28
inc edi
push edi
call fcn.00474ec0
mov cl, al
mov byte [ebp - 0x24c8], cl
cmp cl, 0x28
je 0x499c6f
lea ecx, [ecx]
mov edx, dword [ebp - 0x47c]
mov esi, dword [ebp - 0x478]
cmp edx, esi
jae 0x499c34
lea eax, [edx + 1]
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x48c]
cmp esi, 0x10
jb 0x499c2a
mov eax, dword [ebp - 0x48c]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
jmp 0x499c53
push dword [ebp - 0x24c8]
mov byte [ebp - 0x2504], 0
push dword [ebp - 0x2504]
push ecx
lea ecx, [ebp - 0x48c]
call fcn.0042a1d0
push 0x28
inc edi
lea ecx, [ebp - 0x2440]
push edi
call fcn.00474ec0
mov cl, al
mov byte [ebp - 0x24c8], cl
cmp cl, 0x28
jne 0x499c00
mov ecx, dword [ebp - 0x47c]
mov edx, dword [ebp - 0x478]
cmp ecx, edx
jae 0x499cab
lea eax, [ecx + 1]
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x48c]
cmp edx, 0x10
jb 0x499c99
mov eax, dword [ebp - 0x48c]
mov word [eax + ecx], 0x22
mov byte [ebp - 0x244d], 0
jmp 0x49a9fd
push 0x22
mov byte [ebp - 0x2500], 0
push dword [ebp - 0x2500]
push ecx
lea ecx, [ebp - 0x48c]
call fcn.0042a1d0
mov byte [ebp - 0x244d], 0
jmp 0x49a9fd
mov eax, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
or eax, 6
push eax
call fcn.00476250
mov byte [ebp - 0x244d], 0
jmp 0x49a9fd
cmp byte [ebp - 0x244d], 0
je 0x499d1b
cmp ecx, 0x3c
jne 0x499d1b
mov eax, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
or eax, 6
push eax
call fcn.00476250
jmp 0x49a9fd
cmp ecx, 0x27
jne 0x499d3a
mov eax, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
or eax, 7
push eax
call fcn.00476250
jmp 0x49a9fd
ret
or al, 0
invalid
cmp ecx, 0x23
jne 0x49a9a0
cmp dword [ebp - 0x24d0], 0
jne 0x49a9a0
mov ebx, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
mov eax, ebx
or eax, 9
push eax
call fcn.00476250
jmp 0x499d70
lea ecx, [ebp - 0x249c]
call fcn.004761d0
mov eax, dword [ebp - 0x2464]
cmp eax, 0x20
je 0x499d8b
cmp eax, 9
jne 0x499d99
mov eax, dword [ebp - 0x2480]
cmp eax, dword [ebp - 0x2494]
jb 0x499d70
cmp byte [ebp - 0x246f], 0
lea ecx, [ebp - 0x249c]
je 0x499db3
push ebx
call fcn.00476250
jmp 0x49a9fd
push 0x5b60c0
call fcn.00480180
test al, al
je 0x499dcd
mov byte [ebp - 0x244d], 1
jmp 0x49a9fd
cmp byte [edi + 0x18de], 0
je 0x49a9fd
push 0x5b60e0
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
jne 0x49a886
push 0x5b60e8
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
jne 0x49a886
push 0x5b60dc
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x499ee8
mov eax, dword [ebp - 0x2480]
lea edx, [ebp - 0x2440]
add eax, 2
lea ecx, [ebp - 0x4bc]
push 1
push eax
call fcn.004955f0
add esp, 8
lea eax, [ebp - 0x24c0]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x4bc]
mov ecx, edi
push eax
call fcn.0049c640
mov esi, dword [ebp - 0x24b8]
add esi, 1
mov dword [ebp - 0x24b8], esi
js 0x499ed4
cmp esi, 0x1f
jge 0x499ed4
test al, al
mov eax, 1
je 0x499eb1
test esi, esi
js 0x499e82
mov ecx, esi
shl eax, cl
not eax
and dword [ebp - 0x2454], eax
mov eax, 1
test esi, esi
js 0x499e97
mov ecx, esi
shl eax, cl
or dword [ebp - 0x24a4], eax
lea ecx, [ebp - 0x4bc]
mov byte [ebp - 4], 8
call fcn.0040a8e0
jmp 0x49a9fd
test esi, esi
js 0x499eb9
mov ecx, esi
shl eax, cl
or dword [ebp - 0x2454], eax
mov eax, 1
test esi, esi
js 0x499ecc
mov ecx, esi
shl eax, cl
not eax
and dword [ebp - 0x24a4], eax
lea ecx, [ebp - 0x4bc]
mov byte [ebp - 4], 8
call fcn.0040a8e0
jmp 0x49a9fd
push 0x5b6100
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x499f9f
mov esi, dword [ebp - 0x24b8]
mov eax, 1
test esi, esi
js 0x499f13
mov ecx, esi
shl eax, cl
mov ebx, dword [ebp - 0x24a4]
mov edi, dword [ebp - 0x2454]
test ebx, eax
jne 0x499f67
cmp esi, 0x1e
ja 0x499f41
mov eax, 1
mov ecx, esi
shl eax, cl
xor edi, eax
or ebx, eax
mov dword [ebp - 0x2454], edi
mov dword [ebp - 0x24a4], ebx
mov ebx, edi
neg ebx
sbb ebx, ebx
and ebx, 0x40
mov dword [ebp - 0x2448], ebx
test edi, edi
jne 0x49a9fd
mov dword [ebp - 0x246c], 9
jmp 0x49a9fd
test edi, edi
jne 0x49a9fd
cmp esi, 0x1e
ja 0x499f8b
mov edi, 1
mov ecx, esi
shl edi, cl
or ebx, edi
mov dword [ebp - 0x2454], edi
mov dword [ebp - 0x24a4], ebx
mov ebx, edi
neg ebx
sbb ebx, ebx
and ebx, 0x40
mov dword [ebp - 0x2448], ebx
jmp 0x49a9fd
push 0x5b6108
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x49a0b0
mov esi, dword [ebp - 0x24b8]
mov eax, 1
test esi, esi
js 0x499fca
mov ecx, esi
shl eax, cl
mov ebx, dword [ebp - 0x24a4]
test eax, ebx
jne 0x49a072
mov eax, dword [ebp - 0x2480]
lea edx, [ebp - 0x2440]
add eax, 4
lea ecx, [ebp - 0x4bc]
push 1
push eax
call fcn.004955f0
add esp, 8
lea eax, [ebp - 0x24c0]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x4bc]
mov ecx, edi
push eax
call fcn.0049c640
test al, al
je 0x49a05e
cmp esi, 0x1e
ja 0x49a03b
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x2454]
xor ecx, eax
or ebx, eax
mov dword [ebp - 0x2454], ecx
mov dword [ebp - 0x24a4], ebx
jmp 0x49a041
mov ecx, dword [ebp - 0x2454]
mov ebx, ecx
neg ebx
sbb ebx, ebx
and ebx, 0x40
mov dword [ebp - 0x2448], ebx
test ecx, ecx
jne 0x49a05e
mov dword [ebp - 0x246c], 9
lea ecx, [ebp - 0x4bc]
mov byte [ebp - 4], 8
call fcn.0040a8e0
jmp 0x49a9fd
mov edi, dword [ebp - 0x2454]
test edi, edi
jne 0x49a9fd
cmp esi, 0x1e
ja 0x49a09c
mov edi, 1
mov ecx, esi
shl edi, cl
or ebx, edi
mov dword [ebp - 0x2454], edi
mov dword [ebp - 0x24a4], ebx
mov eax, edi
neg eax
sbb eax, eax
and eax, 0x40
mov dword [ebp - 0x2448], eax
jmp 0x49a9fd
push 0x5b60f0
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x49a10e
mov esi, dword [ebp - 0x24b8]
mov edi, dword [ebp - 0x2454]
cmp esi, 0x1e
ja 0x49a0ee
mov eax, 1
mov ecx, esi
shl eax, cl
not eax
and edi, eax
and dword [ebp - 0x24a4], eax
mov dword [ebp - 0x2454], edi
dec esi
mov ebx, edi
neg ebx
mov dword [ebp - 0x24b8], esi
sbb ebx, ebx
and ebx, 0x40
mov eax, ebx
mov dword [ebp - 0x2448], ebx
or eax, 9
jmp 0x49a9f7
push 0x5b60f8
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x49a6b3
cmp byte [edi + 0x18df], 0
je 0x49a9fd
cmp dword [ebp - 0x2454], 0
jne 0x49a9fd
mov eax, dword [ebp - 0x2480]
lea edx, [ebp - 0x2440]
add eax, 6
lea ecx, [ebp - 0x4a4]
push 1
push eax
call fcn.004955f0
add esp, 8
mov byte [ebp - 4], 0xb
xor edx, edx
mov edi, dword [ebp - 0x494]
mov ebx, dword [ebp - 0x490]
mov ecx, dword [ebp - 0x4a4]
mov dword [ebp - 0x24b4], edx
test edi, edi
je 0x49a1a5
lea eax, [ebp - 0x4a4]
cmp ebx, 0x10
jb 0x49a18f
mov eax, ecx
mov al, byte [edx + eax]
cmp al, 0x20
je 0x49a19a
cmp al, 9
jne 0x49a19f
inc edx
cmp edx, edi
jb 0x49a182
mov dword [ebp - 0x24b4], edx
mov esi, edx
cmp edx, edi
jae 0x49a1e9
mov edx, dword [ebp - 0x244c]
lea eax, [ebp - 0x4a4]
cmp ebx, 0x10
jb 0x49a1be
mov eax, ecx
mov al, byte [esi + eax]
movzx ecx, al
cmp ecx, dword [edx + 8]
jge 0x49a1d1
mov eax, dword [edx + 0x10]
mov al, byte [ecx + eax]
jmp 0x49a1d4
mov al, byte [edx + 0xc]
test al, al
je 0x49a1e3
mov ecx, dword [ebp - 0x4a4]
inc esi
cmp esi, edi
jb 0x49a1b1
mov edx, dword [ebp - 0x24b4]
mov eax, esi
lea ecx, [ebp - 0x4a4]
sub eax, edx
push eax
push edx
lea eax, [ebp - 0x4d4]
push eax
call fcn.0049d130
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x494]
cmp esi, ecx
jae 0x49a48d
push esi
lea ecx, [ebp - 0x4a4]
call fcn.0049d180
mov ecx, dword [ebp - 0x494]
cmp byte [eax], 0x28
jne 0x49a456
mov edi, esi
cmp esi, ecx
jae 0x49a258
mov edx, dword [ebp - 0x490]
mov ebx, dword [ebp - 0x4a4]
lea eax, [ebp - 0x4a4]
cmp edx, 0x10
jb 0x49a24d
mov eax, ebx
cmp byte [edi + eax], 0x29
je 0x49a258
inc edi
cmp edi, ecx
jb 0x49a240
mov eax, edi
lea ecx, [ebp - 0x4a4]
sub eax, esi
dec eax
push eax
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x4bc]
push eax
call fcn.0049d130
mov edx, dword [ebp - 0x494]
lea eax, [edi + 1]
cmp eax, edx
jae 0x49a2af
mov esi, dword [ebp - 0x490]
mov edi, dword [ebp - 0x4a4]
lea ecx, [ecx]
lea ecx, [ebp - 0x4a4]
cmp esi, 0x10
jb 0x49a29d
mov ecx, edi
mov cl, byte [eax + ecx]
cmp cl, 0x20
je 0x49a2aa
cmp cl, 9
jne 0x49a2af
inc eax
cmp eax, edx
jb 0x49a290
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 0xf
mov byte [ebp - 0x474], 0
mov byte [ebp - 4], 0xe
cmp eax, edx
jae 0x49a2f8
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.0049d130
push eax
lea ecx, [ebp - 0x474]
call fcn.00414620
lea ecx, [ebp - 0x28]
call fcn.0040a8e0
lea eax, [ebp - 0x474]
push eax
lea ecx, [ebp - 0x40]
call fcn.004146c0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x28]
call fcn.004146c0
lea eax, [ebp - 0x4d4]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x24c0]
call fcn.00474690
mov esi, eax
cmp esi, dword [ebp - 0x24c0]
je 0x49a374
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x49a348
mov eax, dword [eax]
cmp dword [ebp - 0x4c0], 0x10
lea ecx, [ebp - 0x4d4]
jb 0x49a35d
mov ecx, dword [ebp - 0x4d4]
push edx
mov edx, dword [ebp - 0x4c4]
push eax
call fcn.00474390
shr eax, 0x1f
add esp, 8
test al, al
je 0x49a3b2
lea eax, [ebp - 0x4d4]
push ecx
mov dword [ebp - 0x24b4], eax
lea eax, [ebp - 0x24b4]
push eax
push ecx
lea ecx, [ebp - 0x24c0]
call fcn.0049f500
push eax
add eax, 0x10
lea ecx, [ebp - 0x24c0]
push eax
push esi
lea eax, [ebp - 0x24fc]
push eax
call fcn.0049f5b0
mov esi, dword [ebp - 0x24fc]
lea eax, [ebp - 0x40]
push eax
lea ecx, [esi + 0x28]
call fcn.004976c0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xe
call fcn.004746f0
mov ecx, dword [ebp - 0x24ac]
lea eax, [ebp - 0x4d4]
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x5c]
push eax
call fcn.004146c0
lea eax, [ebp - 0x474]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x44]
call fcn.004146c0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x2c], 0
call fcn.004146c0
mov ebx, dword [ebp - 0x24e0]
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x13
push eax
mov edx, dword [ebx + 4]
cmp dword [ebx + 8], edx
je 0x49a430
call fcn.0049dab0
add esp, 4
add dword [ebx + 4], 0x50
jmp 0x49a438
push edx
mov ecx, ebx
call fcn.0049db90
lea ecx, [ebp - 0x60]
call fcn.0049ad40
lea ecx, [ebp - 0x474]
call fcn.0040a8e0
lea ecx, [ebp - 0x4bc]
jmp 0x49a688
cmp esi, ecx
jae 0x49a48d
mov edx, dword [ebp - 0x490]
mov edi, dword [ebp - 0x4a4]
jmp 0x49a470
lea eax, [ebp - 0x4a4]
cmp edx, 0x10
jb 0x49a47d
mov eax, edi
mov al, byte [esi + eax]
cmp al, 0x20
je 0x49a488
cmp al, 9
jne 0x49a48d
inc esi
cmp esi, ecx
jb 0x49a470
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x474]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.0049d130
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x474]
mov ebx, dword [ebp - 0x460]
mov edi, dword [ebp - 0x474]
cmp ebx, 0x10
jb 0x49a4bf
mov eax, edi
lea ecx, [ebp - 0x474]
jb 0x49a4c9
mov ecx, edi
mov edx, dword [ebp - 0x464]
add edx, ecx
cmp eax, edx
je 0x49a4e6
mov cl, byte [eax]
cmp cl, 0x20
je 0x49a4e1
cmp cl, 9
jne 0x49a504
inc eax
cmp eax, edx
jne 0x49a4d5
push 1
push 0x5b6118
lea ecx, [ebp - 0x474]
call fcn.0040af10
mov ebx, dword [ebp - 0x460]
mov edi, dword [ebp - 0x474]
lea eax, [ebp - 0x4d4]
push eax
lea ecx, [ebp - 0x24c0]
call fcn.00474690
mov esi, eax
cmp esi, dword [ebp - 0x24c0]
je 0x49a55a
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x49a52e
mov eax, dword [eax]
cmp dword [ebp - 0x4c0], 0x10
lea ecx, [ebp - 0x4d4]
jb 0x49a543
mov ecx, dword [ebp - 0x4d4]
push edx
mov edx, dword [ebp - 0x4c4]
push eax
call fcn.00474390
shr eax, 0x1f
add esp, 8
test al, al
je 0x49a598
lea eax, [ebp - 0x4d4]
push ecx
mov dword [ebp - 0x24b4], eax
lea eax, [ebp - 0x24b4]
push eax
push ecx
lea ecx, [ebp - 0x24c0]
call fcn.0049f500
push eax
add eax, 0x10
lea ecx, [ebp - 0x24c0]
push eax
push esi
lea eax, [ebp - 0x24f8]
push eax
call fcn.0049f5b0
mov esi, dword [ebp - 0x24f8]
add esi, 0x28
lea eax, [ebp - 0x474]
cmp esi, eax
je 0x49a5ba
cmp ebx, 0x10
jb 0x49a5ac
mov eax, edi
push dword [ebp - 0x464]
mov ecx, esi
push eax
call fcn.0040af10
cmp dword [esi + 0x2c], 0x10
lea ecx, [esi + 0x18]
jb 0x49a5c6
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x28], 0
push 0
mov byte [ecx], 0
lea ecx, [ebp - 0x4bc]
push 0x5ade8f
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x4a8], 0xf
mov byte [ebp - 0x4bc], 0
call fcn.0040af10
mov ecx, dword [ebp - 0x24ac]
lea eax, [ebp - 0x4d4]
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x5c]
push eax
call fcn.004146c0
lea eax, [ebp - 0x474]
mov byte [ebp - 4], 0x16
push eax
lea ecx, [ebp - 0x44]
call fcn.004146c0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x2c], 0
call fcn.004146c0
mov ebx, dword [ebp - 0x24e0]
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x18
push eax
mov edx, dword [ebx + 4]
cmp dword [ebx + 8], edx
je 0x49a667
call fcn.0049dab0
add esp, 4
add dword [ebx + 4], 0x50
jmp 0x49a66f
push edx
mov ecx, ebx
call fcn.0049db90
lea ecx, [ebp - 0x60]
call fcn.0049ad40
lea ecx, [ebp - 0x4bc]
call fcn.0040a8e0
lea ecx, [ebp - 0x474]
call fcn.0040a8e0
lea ecx, [ebp - 0x4d4]
call fcn.0040a8e0
lea ecx, [ebp - 0x4a4]
mov byte [ebp - 4], 8
call fcn.0040a8e0
mov byte [ebp - 0x24a5], 1
jmp 0x49a9fd
push 0x5b6110
lea ecx, [ebp - 0x249c]
call fcn.00480180
test al, al
je 0x49a9fd
cmp byte [edi + 0x18df], 0
je 0x49a9fd
cmp dword [ebp - 0x2454], 0
jne 0x49a9fd
mov eax, dword [ebp - 0x2480]
lea edx, [ebp - 0x2440]
add eax, 5
lea ecx, [ebp - 0x4a4]
push 0
push eax
call fcn.004955f0
add esp, 8
lea eax, [ebp - 0x4a4]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x2548]
mov ecx, edi
push eax
call fcn.0049c3b0
mov byte [ebp - 4], 0x1a
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0x2544]
mov esi, dword [ebp - 0x2548]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jb 0x49a867
push esi
lea ecx, [ebp - 0x4d4]
call fcn.004146c0
lea eax, [ebp - 0x4d4]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [ebp - 0x24c0]
call fcn.0049ca70
push 0
push 0x5ade57
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 0xf
mov byte [ebp - 0x474], 0
call fcn.0040af10
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x4bc]
push 0
push 0x5adeb5
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x4a8], 0xf
mov byte [ebp - 0x4bc], 0
call fcn.0040af10
mov ecx, dword [ebp - 0x24ac]
lea eax, [ebp - 0x4d4]
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x5c]
push eax
call fcn.004146c0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x1e
push eax
lea ecx, [ebp - 0x44]
call fcn.004146c0
lea eax, [ebp - 0x474]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x2c], 1
call fcn.004146c0
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x60]
mov edx, dword [edi + 0x6c]
push eax
cmp dword [edi + 0x70], edx
je 0x49a82e
call fcn.0049dab0
add esp, 4
add dword [edi + 0x6c], 0x50
jmp 0x49a837
push edx
lea ecx, [edi + 0x68]
call fcn.0049db90
lea ecx, [ebp - 0x60]
call fcn.0049ad40
lea ecx, [ebp - 0x4bc]
call fcn.0040a8e0
lea ecx, [ebp - 0x474]
call fcn.0040a8e0
lea ecx, [ebp - 0x4d4]
mov byte [ebp - 0x24a5], 1
call fcn.0040a8e0
lea ecx, [ebp - 0x2548]
call fcn.0049d5a0
lea ecx, [ebp - 0x4a4]
mov byte [ebp - 4], 8
call fcn.0040a8e0
jmp 0x49a9fd
push 0x5b60d4
lea ecx, [ebp - 0x249c]
call fcn.00480180
mov ecx, dword [ebp - 0x2480]
xor edx, edx
mov bl, al
test bl, bl
push 0
sete dl
inc ecx
add edx, 5
add ecx, edx
lea edx, [ebp - 0x2440]
push ecx
lea ecx, [ebp - 0x474]
call fcn.004955f0
add esp, 8
lea eax, [ebp - 0x474]
lea ecx, [ebp - 0x24c0]
push eax
call fcn.00474690
mov edi, dword [ebp - 0x24c0]
mov esi, eax
cmp esi, edi
je 0x49a917
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x49a8ee
mov eax, dword [eax]
cmp dword [ebp - 0x460], 0x10
lea ecx, [ebp - 0x474]
jb 0x49a903
mov ecx, dword [ebp - 0x474]
push edx
mov edx, dword [ebp - 0x464]
push eax
call fcn.00474390
add esp, 8
test eax, eax
jns 0x49a919
mov esi, edi
cmp esi, edi
mov esi, dword [ebp - 0x24b8]
setne al
add esi, 1
mov dword [ebp - 0x24b8], esi
js 0x49a993
cmp esi, 0x1f
jge 0x49a993
cmp bl, al
mov eax, 1
jne 0x49a970
test esi, esi
js 0x49a945
mov ecx, esi
shl eax, cl
not eax
and dword [ebp - 0x2454], eax
mov eax, 1
test esi, esi
js 0x49a95a
mov ecx, esi
shl eax, cl
or dword [ebp - 0x24a4], eax
lea ecx, [ebp - 0x474]
call fcn.0040a8e0
jmp 0x49a9fd
test esi, esi
js 0x49a978
mov ecx, esi
shl eax, cl
or dword [ebp - 0x2454], eax
mov eax, 1
test esi, esi
js 0x49a98b
mov ecx, esi
shl eax, cl
not eax
and dword [ebp - 0x24a4], eax
lea ecx, [ebp - 0x474]
call fcn.0040a8e0
jmp 0x49a9fd
call fcn.0047c500
test al, al
je 0x49aa03
mov eax, dword [ebp - 0x2448]
lea ecx, [ebp - 0x249c]
or eax, 0xa
push eax
call fcn.00476250
jmp 0x49a9fd
cmp byte [ebp - 0x249d], 0
push dword [ebp - 0x246c]
mov edi, dword [ebp - 0x2480]
mov ecx, dword [ebp - 0x249c]
jne 0x499822
cmp dword [ebp - 0x2490], edi
sbb eax, eax
neg eax
inc eax
sub edi, eax
push edi
call fcn.00475ef0
mov eax, esi
or eax, 4
mov dword [ebp - 0x246c], eax
mov ecx, dword [ebp - 0x2464]
cmp ecx, 0x20
je 0x49aa3b
cmp ecx, 9
jl 0x49aa12
cmp ecx, 0xd
jle 0x49aa3b
mov eax, dword [ebp - 0x246c]
and eax, 0xffffffbf
cmp eax, 3
jle 0x49aa3b
cmp eax, 0xf
je 0x49aa3b
cmp eax, 0x11
je 0x49aa3b
cmp eax, 0x12
je 0x49aa3b
inc dword [ebp - 0x24d0]
mov dword [ebp - 0x24d4], ecx
mov eax, dword [ebp - 0x2480]
mov byte [ebp - 0x249e], 0
cmp eax, dword [ebp - 0x2494]
jae 0x49aad4
mov al, byte [ebp - 0x246f]
mov byte [ebp - 0x2470], al
test al, al
je 0x49aa91
mov esi, dword [ebp - 0x247c]
mov eax, dword [ebp - 0x249c]
inc esi
mov dword [ebp - 0x247c], esi
mov edx, dword [eax]
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
lea eax, [esi + 1]
push eax
push edx
call ecx
mov ecx, dword [ebp - 0x2464]
mov dword [ebp - 0x2474], eax
mov eax, dword [ebp - 0x2460]
add dword [ebp - 0x2480], eax
mov eax, dword [ebp - 0x245c]
mov dword [ebp - 0x2468], ecx
lea ecx, [ebp - 0x249c]
mov dword [ebp - 0x2464], eax
mov eax, dword [ebp - 0x2458]
mov dword [ebp - 0x2460], eax
call fcn.00475fb0
mov ecx, dword [ebp - 0x2464]
mov ebx, dword [ebp - 0x24ac]
jmp 0x49aafa
mov ebx, dword [ebp - 0x24ac]
mov ecx, 0x20
mov word [ebp - 0x2470], 0x100
mov dword [ebp - 0x245c], ecx
mov dword [ebp - 0x2464], ecx
mov dword [ebp - 0x2468], ecx
mov eax, dword [ebp - 0x2480]
cmp eax, dword [ebp - 0x2494]
jae 0x49ab13
mov edi, dword [ebp - 0x2448]
jmp 0x497ee0
mov ecx, dword [ebp - 0x24e4]
lea eax, [ebp - 0x24f4]
push ebx
push eax
call fcn.0049c710
cmp byte [ebp - 0x24a5], 0
jne 0x49ab33
test al, al
je 0x49ab49
mov ecx, dword [ebp - 0x2440]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
add eax, ebx
mov edx, dword [ecx]
push eax
push ebx
push ecx
call dword [edx + 0x40]
mov ecx, dword [ebp - 0x2480]
cmp dword [ebp - 0x2490], ecx
push dword [ebp - 0x246c]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x249c]
call fcn.00475ef0
mov esi, dword [ebp - 0x249c]
mov edi, dword [esi + 0x1f5c]
test edi, edi
jle 0x49aba4
mov ecx, dword [esi]
lea eax, [esi + 0xfbc]
push eax
push edi
push ecx
mov edx, dword [ecx]
call dword [edx + 0x34]
mov eax, dword [esi + 0x1f5c]
add dword [esi + 0x1f64], eax
mov dword [esi + 0x1f5c], 0
mov esi, dword [ebp - 0x24f0]
test esi, esi
je 0x49ac10
mov edx, dword [ebp - 0x24ec]
push ecx
mov ecx, esi
call fcn.0049e5a0
mov ecx, dword [ebp - 0x24e8]
mov eax, 0x92492493
sub ecx, esi
add esp, 4
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
shl ecx, 2
cmp ecx, 0x1000
jb 0x49ac06
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x49ac06
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.0059e222
add esp, 8
mov edx, dword [ebp - 0x478]
cmp edx, 0x10
jb 0x49ac4c
mov ecx, dword [ebp - 0x48c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49ac42
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x49ac42
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0059e222
add esp, 8
mov eax, dword [ebp - 0x24c0]
lea ecx, [ebp - 0x24c0]
push eax
push dword [eax]
lea eax, [ebp - 0x24e4]
push eax
call fcn.0049d3d0
push 0x58
push dword [ebp - 0x24c0]
call fcn.0059e222
push dword [ebp - 0x251c]
call fcn.0059e230
push dword [ebp - 0x2528]
call fcn.0059e230
push dword [ebp - 0x2534]
call fcn.0059e230
push dword [ebp - 0x2510]
call fcn.0059e230
add esp, 0x18
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0x14
call fcn.0059e60f
mov edi, edi
mov dword [0xa7004989], eax
mov cl, byte [ecx]
sbb cl, byte [edx - 0x7cb0ffb7]
dec ecx
add byte [ecx - 0x27ffb66a], cl
lea ecx, [ecx]
movsb byte es:[edi], byte [esi]
xchg edx, eax
dec ecx
add dh, al
xchg ebp, eax
dec ecx
add cl, cl
xchg dword [ecx], ecx
or eax, 0x50004983
test byte [ecx], cl
push 0xb7004994
xchg esp, eax
dec ecx
add byte [ebx - 0x18ffb66d], al
mov cl, byte [ecx]
mov dword [esi - 0x7461ffb7], edx
dec ecx
add byte [ecx - 0x76ffb66a], cl
xchg esi, eax
dec ecx
add byte [ebx], cl
xchg edx, eax
dec ecx
add byte [edx - 0x6b], cl
dec ecx
add byte [0x3c004991], al
mov dword [ecx], ecx
cmp al, 0x89
dec ecx
add ah, ch
or dword [ecx], 0x15
xchg esi, eax
dec ecx
add byte [ebp - 0x33ffb671], bl
int3