Function at 0x5082f0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fdf16
mov eax, dword fs:[0]
push eax
sub esp, 0xa30
mov eax, dword [0x654c54]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x8c8], ecx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x20]
mov dl, byte [ecx + 0x12c]
mov byte [ebp - 0x16], dl
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x20]
mov dl, byte [ecx + 0x12d]
mov byte [ebp - 0xd], dl
cmp dword [ebp + 8], 0x10
je 0x508351
cmp dword [ebp + 8], 0x11
jne 0x508356
jmp 0x50a477
mov byte [ebp - 0x15], 0
movzx eax, byte [ebp - 0x16]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x17], al
movzx ecx, byte [ebp - 0x16]
test ecx, ecx
je 0x508397
mov edx, dword [ebp - 0x8c8]
cmp dword [edx + 0x108], 0xffffffff
jne 0x508397
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [eax + 0x108], edx
push 0
push 0
lea ecx, [ebp - 0x38]
call fcn.00407a40
mov eax, dword [0x611c1c]
push eax
push 0
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
push ecx
lea ecx, [ebp - 0x38]
call fcn.0040ac90
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x108]
mov dword [ebp - 0x3c], edx
movzx eax, word [ebp + 0xc]
cmp eax, 3
je 0x5083fb
movzx ecx, word [ebp + 0xc]
cmp ecx, 0x18
jne 0x5087b1
mov edx, dword [ebp - 0x8c8]
cmp dword [edx + 0x108], 0xffffffff
je 0x5087ac
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x108]
cmp edx, dword [ecx + 0x104]
je 0x5087ac
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jge 0x508502
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
push eax
lea ecx, [ebp - 0xdc]
push ecx
mov ecx, dword [ebp - 0x8c8]
call fcn.00507390
mov ecx, eax
call fcn.004308d0
mov dword [ebp - 0x8cc], eax
mov edx, dword [ebp - 0x8cc]
mov dword [ebp - 0x8d0], edx
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x8d0]
push eax
lea ecx, [ebp - 0xf8]
push ecx
call fcn.00526d00
add esp, 8
mov dword [ebp - 0x8d4], eax
mov edx, dword [ebp - 0x8d4]
mov dword [ebp - 0x8d8], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x8d8]
push eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x20]
mov ecx, dword [edx + 0x6c]
call fcn.004e2100
mov byte [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0xf8]
call fcn.004079f0
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0xdc]
call fcn.00407a40
jmp 0x5085b5
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
push eax
lea ecx, [ebp - 0x114]
push ecx
mov ecx, dword [ebp - 0x8c8]
call fcn.00507390
mov ecx, eax
call fcn.004308d0
mov dword [ebp - 0x8dc], eax
mov edx, dword [ebp - 0x8dc]
mov dword [ebp - 0x8e0], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x8e0]
push eax
lea ecx, [ebp - 0x130]
push ecx
call fcn.00526d00
add esp, 8
mov dword [ebp - 0x8e4], eax
mov edx, dword [ebp - 0x8e4]
mov dword [ebp - 0x8e8], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x8e8]
push eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x20]
mov ecx, dword [edx + 0x6c]
call fcn.004e2100
mov byte [ebp - 4], 3
push 0
push 1
lea ecx, [ebp - 0x130]
call fcn.004079f0
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x114]
call fcn.00407a40
movzx eax, word [ebp + 0xc]
cmp eax, 3
jne 0x5085c7
mov byte [ebp - 0x17], 0
jmp 0x5087ac
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x108]
jle 0x5085f5
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0x8ec], edx
jmp 0x508607
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
mov dword [ebp - 0x8ec], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [edx + 0x104]
cmp ecx, dword [eax + 0x108]
jge 0x508635
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
mov dword [ebp - 0x8f0], eax
jmp 0x508647
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x108]
mov dword [ebp - 0x8f0], edx
mov eax, dword [0x611c1c]
push eax
mov ecx, dword [ebp - 0x8ec]
push ecx
lea edx, [ebp - 0x14c]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x8f4], eax
mov eax, dword [ebp - 0x8f4]
mov dword [ebp - 0x8f8], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x8f0]
push ecx
push 0
lea edx, [ebp - 0x168]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x8fc], eax
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x900], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x8f8]
push ecx
mov edx, dword [ebp - 0x900]
push edx
lea eax, [ebp - 0x184]
push eax
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x904], eax
mov ecx, dword [ebp - 0x904]
mov dword [ebp - 0x524], ecx
mov byte [ebp - 4], 7
mov edx, dword [0x611c1c]
push edx
push 0
mov eax, dword [ebp - 0x524]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 6
push 0
push 1
lea ecx, [ebp - 0x184]
call fcn.00407a40
mov byte [ebp - 4], 5
push 0
push 1
lea ecx, [ebp - 0x168]
call fcn.00407a40
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x14c]
call fcn.00407a40
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x108]
jge 0x508774
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0x908], edx
jmp 0x508786
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
mov dword [ebp - 0x908], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x908]
mov dword [edx + 0x104], eax
mov ecx, dword [ebp - 0x8c8]
mov dword [ecx + 0x108], 0xffffffff
mov byte [ebp - 0x15], 1
jmp 0x50a1f8
movzx edx, word [ebp + 0xc]
cmp edx, 0x16
jne 0x508dd8
lea eax, [ebp - 0x1a0]
push eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x20]
mov ecx, dword [edx + 0x6c]
call fcn.004e2290
mov dword [ebp - 0x90c], eax
mov eax, dword [ebp - 0x90c]
mov dword [ebp - 0x910], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x910]
push ecx
lea edx, [ebp - 0x58]
push edx
call fcn.00526c90
add esp, 8
mov byte [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0x1a0]
call fcn.004079f0
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x528], eax
cmp dword [ebp - 0x528], 0
jbe 0x508dc3
lea ecx, [ebp - 0x531]
mov dword [ebp - 0x530], ecx
push 0
push 0
lea ecx, [ebp - 0x74]
call fcn.00407a40
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x78], 0
jmp 0x508856
mov edx, dword [ebp - 0x78]
add edx, 1
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x538], eax
mov ecx, dword [ebp - 0x78]
cmp ecx, dword [ebp - 0x538]
jae 0x5089fd
mov edx, dword [ebp - 0x78]
cmp edx, dword [ebp - 0x44]
jbe 0x50887b
call fcn.005cbe1d
cmp dword [ebp - 0x40], 8
jb 0x50888c
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x914], eax
jmp 0x508895
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x914], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x914]
movzx ecx, word [eax + edx*2]
cmp ecx, 0xd
je 0x5088e0
mov edx, dword [ebp - 0x78]
cmp edx, dword [ebp - 0x44]
jbe 0x5088b4
call fcn.005cbe1d
cmp dword [ebp - 0x40], 8
jb 0x5088c5
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x918], eax
jmp 0x5088ce
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x918], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x918]
movzx ecx, word [eax + edx*2]
cmp ecx, 0xa
jne 0x5088e5
jmp 0x5089fd
mov edx, dword [ebp - 0x78]
cmp edx, dword [ebp - 0x44]
jbe 0x5088f2
call fcn.005cbe1d
cmp dword [ebp - 0x40], 8
jb 0x508903
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x91c], eax
jmp 0x50890c
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x91c], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x91c]
movzx ecx, word [eax + edx*2]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xdc]
mov ecx, dword [ebp - 0x8c8]
mov ecx, dword [ecx + 0xdc]
mov edx, dword [eax]
mov eax, dword [edx + 0x20]
call eax
test eax, eax
je 0x5089f8
mov ecx, dword [ebp - 0x78]
cmp ecx, dword [ebp - 0x44]
jbe 0x50894e
call fcn.005cbe1d
cmp dword [ebp - 0x40], 8
jb 0x50895f
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x920], edx
jmp 0x508968
lea eax, [ebp - 0x54]
mov dword [ebp - 0x920], eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x920]
movzx eax, word [edx + ecx*2]
push eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0xa0]
push edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0xfc]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xfc]
mov edx, dword [ecx]
mov ecx, eax
mov eax, dword [edx + 8]
call eax
movzx ecx, al
test ecx, ecx
je 0x5089f8
mov edx, dword [ebp - 0x78]
cmp edx, dword [ebp - 0x44]
jbe 0x5089b8
call fcn.005cbe1d
cmp dword [ebp - 0x40], 8
jb 0x5089c9
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x924], eax
jmp 0x5089d2
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x924], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x924]
mov cx, word [eax + edx*2]
mov word [ebp - 0x53a], cx
movzx edx, word [ebp - 0x53a]
push edx
push 1
lea ecx, [ebp - 0x74]
call fcn.0040abd0
jmp 0x50884d
mov eax, dword [ebp - 0x8c8]
cmp dword [eax + 0x108], 0xffffffff
jne 0x508b63
mov ecx, dword [0x611c1c]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
push eax
lea ecx, [ebp - 0x1bc]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x928], eax
mov edx, dword [ebp - 0x928]
mov dword [ebp - 0x92c], edx
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
push ecx
push 0
lea edx, [ebp - 0x1d8]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x930], eax
mov eax, dword [ebp - 0x930]
mov dword [ebp - 0x934], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x74]
push ecx
mov edx, dword [ebp - 0x934]
push edx
lea eax, [ebp - 0x1f4]
push eax
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x938], eax
mov ecx, dword [ebp - 0x938]
mov dword [ebp - 0x93c], ecx
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x92c]
push edx
mov eax, dword [ebp - 0x93c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x940], eax
mov edx, dword [ebp - 0x940]
mov dword [ebp - 0x540], edx
mov byte [ebp - 4], 0xf
mov eax, dword [0x611c1c]
push eax
push 0
mov ecx, dword [ebp - 0x540]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0xe
push 0
push 1
lea ecx, [ebp - 0x210]
call fcn.00407a40
mov byte [ebp - 4], 0xd
push 0
push 1
lea ecx, [ebp - 0x1f4]
call fcn.00407a40
mov byte [ebp - 4], 0xc
push 0
push 1
lea ecx, [ebp - 0x1d8]
call fcn.00407a40
mov byte [ebp - 4], 0xb
push 0
push 1
lea ecx, [ebp - 0x1bc]
call fcn.00407a40
jmp 0x508d88
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [edx + 0x104]
cmp ecx, dword [eax + 0x108]
jle 0x508b91
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
mov dword [ebp - 0x944], eax
jmp 0x508ba3
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x108]
mov dword [ebp - 0x944], edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jge 0x508bd1
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x948], ecx
jmp 0x508be3
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x948], eax
mov ecx, dword [0x611c1c]
push ecx
mov edx, dword [ebp - 0x944]
push edx
lea eax, [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x94c], eax
mov ecx, dword [ebp - 0x94c]
mov dword [ebp - 0x950], ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x948]
push edx
push 0
lea eax, [ebp - 0x248]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x954], eax
mov ecx, dword [ebp - 0x954]
mov dword [ebp - 0x958], ecx
mov byte [ebp - 4], 0x11
lea edx, [ebp - 0x74]
push edx
mov eax, dword [ebp - 0x958]
push eax
lea ecx, [ebp - 0x264]
push ecx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x95c], eax
mov edx, dword [ebp - 0x95c]
mov dword [ebp - 0x960], edx
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x950]
push eax
mov ecx, dword [ebp - 0x960]
push ecx
lea edx, [ebp - 0x280]
push edx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x964], eax
mov eax, dword [ebp - 0x964]
mov dword [ebp - 0x544], eax
mov byte [ebp - 4], 0x13
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x544]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0x12
push 0
push 1
lea ecx, [ebp - 0x280]
call fcn.00407a40
mov byte [ebp - 4], 0x11
push 0
push 1
lea ecx, [ebp - 0x264]
call fcn.00407a40
mov byte [ebp - 4], 0x10
push 0
push 1
lea ecx, [ebp - 0x248]
call fcn.00407a40
mov byte [ebp - 4], 0xb
push 0
push 1
lea ecx, [ebp - 0x22c]
call fcn.00407a40
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jge 0x508d54
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x968], ecx
jmp 0x508d66
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x968], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x968]
mov dword [ecx + 0x104], edx
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x108], 0xffffffff
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x548], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
add eax, dword [ebp - 0x548]
mov ecx, dword [ebp - 0x8c8]
mov dword [ecx + 0x104], eax
mov byte [ebp - 0x15], 1
mov byte [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0x74]
call fcn.00407a40
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x58]
call fcn.00407a40
jmp 0x50a1f8
movzx edx, word [ebp + 0xc]
cmp edx, 0x1a
jne 0x508ef8
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x148], 0xffffffff
push 0
push 0
lea ecx, [ebp - 0x9c]
call fcn.00407a40
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x8c8]
add edx, 0xa4
push edx
lea ecx, [ebp - 0x9c]
call fcn.0040ac90
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x80], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x8c8]
add edx, 0x124
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x140]
mov dword [eax + 0x104], edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x144]
mov dword [eax + 0x108], edx
mov eax, dword [0x611c1c]
push eax
push 0
lea ecx, [ebp - 0x9c]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0x124
call fcn.0040ac90
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x80]
mov dword [edx + 0x140], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x7c]
mov dword [ecx + 0x144], edx
mov byte [ebp - 0x17], 0
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x9c]
call fcn.00407a40
jmp 0x50a1f8
cmp dword [ebp + 8], 0x25
jne 0x509132
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x5090a7
mov ecx, dword [ebp - 0x8c8]
cmp dword [ecx + 0x104], 0
jle 0x508fd8
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
sub eax, 1
mov dword [ebp - 0x550], eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
mov dword [ebp - 0x54c], ecx
mov edx, dword [ebp - 0x54c]
mov eax, dword [ebp - 0x550]
cmp eax, dword [edx + 0x14]
jbe 0x508f5e
call fcn.005cbe1d
mov ecx, dword [ebp - 0x54c]
cmp dword [ecx + 0x18], 8
jb 0x508f7b
mov edx, dword [ebp - 0x54c]
mov eax, dword [edx + 4]
mov dword [ebp - 0x96c], eax
jmp 0x508f8a
mov ecx, dword [ebp - 0x54c]
add ecx, 4
mov dword [ebp - 0x96c], ecx
mov edx, dword [ebp - 0x550]
mov eax, dword [ebp - 0x96c]
movzx ecx, word [eax + edx*2]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x128]
call edx
movzx eax, al
test eax, eax
jne 0x508fd8
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
sub edx, 1
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x104], edx
jmp 0x508f0e
mov ecx, dword [ebp - 0x8c8]
cmp dword [ecx + 0x104], 0
jle 0x5090a2
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
sub eax, 1
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
mov dword [ebp - 0x554], ecx
mov edx, dword [ebp - 0x554]
mov eax, dword [ebp - 0x558]
cmp eax, dword [edx + 0x14]
jbe 0x509028
call fcn.005cbe1d
mov ecx, dword [ebp - 0x554]
cmp dword [ecx + 0x18], 8
jb 0x509045
mov edx, dword [ebp - 0x554]
mov eax, dword [edx + 4]
mov dword [ebp - 0x970], eax
jmp 0x509054
mov ecx, dword [ebp - 0x554]
add ecx, 4
mov dword [ebp - 0x970], ecx
mov edx, dword [ebp - 0x558]
mov eax, dword [ebp - 0x970]
movzx ecx, word [eax + edx*2]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x128]
call edx
movzx eax, al
test eax, eax
je 0x5090a2
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
sub edx, 1
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x104], edx
jmp 0x508fd8
jmp 0x50912d
movzx ecx, byte [ebp - 0x16]
test ecx, ecx
jne 0x5090be
mov edx, dword [ebp - 0x8c8]
cmp dword [edx + 0x108], 0xffffffff
jne 0x5090db
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
sub ecx, 1
mov edx, dword [ebp - 0x8c8]
mov dword [edx + 0x104], ecx
jmp 0x50912d
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jge 0x509109
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x974], ecx
jmp 0x50911b
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x974], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x974]
mov dword [ecx + 0x104], edx
jmp 0x50a1f8
cmp dword [ebp + 8], 0x27
jne 0x50939b
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x509310
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x55c], edx
mov eax, dword [ebp - 0x55c]
sub eax, 1
mov ecx, dword [ebp - 0x8c8]
cmp dword [ecx + 0x104], eax
jge 0x50922c
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
add eax, 1
mov dword [ebp - 0x564], eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
mov dword [ebp - 0x560], ecx
mov edx, dword [ebp - 0x560]
mov eax, dword [ebp - 0x564]
cmp eax, dword [edx + 0x14]
jbe 0x5091b2
call fcn.005cbe1d
mov ecx, dword [ebp - 0x560]
cmp dword [ecx + 0x18], 8
jb 0x5091cf
mov edx, dword [ebp - 0x560]
mov eax, dword [edx + 4]
mov dword [ebp - 0x978], eax
jmp 0x5091de
mov ecx, dword [ebp - 0x560]
add ecx, 4
mov dword [ebp - 0x978], ecx
mov edx, dword [ebp - 0x564]
mov eax, dword [ebp - 0x978]
movzx ecx, word [eax + edx*2]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x128]
call edx
movzx eax, al
test eax, eax
je 0x50922c
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
add edx, 1
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x104], edx
jmp 0x509148
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x568], edx
mov eax, dword [ebp - 0x568]
sub eax, 1
mov ecx, dword [ebp - 0x8c8]
cmp dword [ecx + 0x104], eax
jge 0x509310
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
add eax, 1
mov dword [ebp - 0x570], eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
mov dword [ebp - 0x56c], ecx
mov edx, dword [ebp - 0x56c]
mov eax, dword [ebp - 0x570]
cmp eax, dword [edx + 0x14]
jbe 0x509296
call fcn.005cbe1d
mov ecx, dword [ebp - 0x56c]
cmp dword [ecx + 0x18], 8
jb 0x5092b3
mov edx, dword [ebp - 0x56c]
mov eax, dword [edx + 4]
mov dword [ebp - 0x97c], eax
jmp 0x5092c2
mov ecx, dword [ebp - 0x56c]
add ecx, 4
mov dword [ebp - 0x97c], ecx
mov edx, dword [ebp - 0x570]
mov eax, dword [ebp - 0x97c]
movzx ecx, word [eax + edx*2]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x128]
call edx
movzx eax, al
test eax, eax
jne 0x509310
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
add edx, 1
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x104], edx
jmp 0x50922c
movzx ecx, byte [ebp - 0x16]
test ecx, ecx
jne 0x509327
mov edx, dword [ebp - 0x8c8]
cmp dword [edx + 0x108], 0xffffffff
jne 0x509344
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
add ecx, 1
mov edx, dword [ebp - 0x8c8]
mov dword [edx + 0x104], ecx
jmp 0x509396
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jle 0x509372
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x980], ecx
jmp 0x509384
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x980], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x980]
mov dword [ecx + 0x104], edx
jmp 0x50a1f8
cmp dword [ebp + 8], 8
jne 0x5097e2
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0xb8]
mov dword [ebp - 0x574], ecx
cmp dword [ebp - 0x574], 0
jbe 0x5097dd
mov edx, dword [ebp - 0x8c8]
cmp dword [edx + 0x108], 0xffffffff
je 0x5095e0
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x108]
cmp edx, dword [ecx + 0x104]
je 0x5095e0
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jle 0x509423
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x984], ecx
jmp 0x509435
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x984], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x108]
jge 0x509463
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0x988], edx
jmp 0x509475
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
mov dword [ebp - 0x988], ecx
mov edx, dword [0x611c1c]
push edx
mov eax, dword [ebp - 0x984]
push eax
lea ecx, [ebp - 0x29c]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x98c], eax
mov edx, dword [ebp - 0x98c]
mov dword [ebp - 0x990], edx
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x988]
push eax
push 0
lea ecx, [ebp - 0x2b8]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x994], eax
mov edx, dword [ebp - 0x994]
mov dword [ebp - 0x998], edx
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x990]
push eax
mov ecx, dword [ebp - 0x998]
push ecx
lea edx, [ebp - 0x2d4]
push edx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x99c], eax
mov eax, dword [ebp - 0x99c]
mov dword [ebp - 0x578], eax
mov byte [ebp - 4], 0x17
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x578]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0x16
push 0
push 1
lea ecx, [ebp - 0x2d4]
call fcn.00407a40
mov byte [ebp - 4], 0x15
push 0
push 1
lea ecx, [ebp - 0x2b8]
call fcn.00407a40
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x29c]
call fcn.00407a40
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jge 0x5095a3
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x9a0], ecx
jmp 0x5095b5
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x9a0], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x9a0]
mov dword [ecx + 0x104], edx
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x108], 0xffffffff
mov byte [ebp - 0x15], 1
jmp 0x5097dd
mov ecx, dword [ebp - 0x8c8]
cmp dword [ecx + 0x104], 0
jle 0x509703
mov edx, dword [0x611c1c]
push edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
push ecx
lea edx, [ebp - 0x2f0]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9a4], eax
mov eax, dword [ebp - 0x9a4]
mov dword [ebp - 0x9a8], eax
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
sub edx, 1
push edx
push 0
lea eax, [ebp - 0x30c]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9ac], eax
mov ecx, dword [ebp - 0x9ac]
mov dword [ebp - 0x9b0], ecx
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x9a8]
push edx
mov eax, dword [ebp - 0x9b0]
push eax
lea ecx, [ebp - 0x328]
push ecx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x9b4], eax
mov edx, dword [ebp - 0x9b4]
mov dword [ebp - 0x5ac], edx
mov byte [ebp - 4], 0x1a
mov eax, dword [0x611c1c]
push eax
push 0
mov ecx, dword [ebp - 0x5ac]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0x19
push 0
push 1
lea ecx, [ebp - 0x328]
call fcn.00407a40
mov byte [ebp - 4], 0x18
push 0
push 1
lea ecx, [ebp - 0x30c]
call fcn.00407a40
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x2f0]
call fcn.00407a40
jmp 0x509779
mov edx, dword [0x611c1c]
push edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
push ecx
lea edx, [ebp - 0x344]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9b8], eax
mov eax, dword [ebp - 0x9b8]
mov dword [ebp - 0x5e0], eax
mov byte [ebp - 4], 0x1b
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x5e0]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x344]
call fcn.00407a40
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
sub ecx, 1
mov edx, dword [ebp - 0x8c8]
mov dword [edx + 0x104], ecx
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x108], 0xffffffff
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x148]
je 0x5097c2
mov byte [ebp - 0x15], 1
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
sub edx, 1
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x148], edx
jmp 0x50a1f8
cmp dword [ebp + 8], 0x2e
jne 0x509b99
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x5f4], edx
cmp dword [ebp - 0x5f4], 0
jbe 0x509b94
mov eax, dword [ebp - 0x8c8]
cmp dword [eax + 0x108], 0xffffffff
je 0x509a26
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x108]
cmp eax, dword [edx + 0x104]
je 0x509a26
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x108]
jle 0x50986a
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0x9bc], edx
jmp 0x50987c
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
mov dword [ebp - 0x9bc], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [edx + 0x104]
cmp ecx, dword [eax + 0x108]
jge 0x5098aa
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
mov dword [ebp - 0x9c0], eax
jmp 0x5098bc
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x108]
mov dword [ebp - 0x9c0], edx
mov eax, dword [0x611c1c]
push eax
mov ecx, dword [ebp - 0x9bc]
push ecx
lea edx, [ebp - 0x360]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9c4], eax
mov eax, dword [ebp - 0x9c4]
mov dword [ebp - 0x9c8], eax
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x9c0]
push ecx
push 0
lea edx, [ebp - 0x37c]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9cc], eax
mov eax, dword [ebp - 0x9cc]
mov dword [ebp - 0x9d0], eax
mov byte [ebp - 4], 0x1d
mov ecx, dword [ebp - 0x9c8]
push ecx
mov edx, dword [ebp - 0x9d0]
push edx
lea eax, [ebp - 0x398]
push eax
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x9d4], eax
mov ecx, dword [ebp - 0x9d4]
mov dword [ebp - 0x5f8], ecx
mov byte [ebp - 4], 0x1e
mov edx, dword [0x611c1c]
push edx
push 0
mov eax, dword [ebp - 0x5f8]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0x1d
push 0
push 1
lea ecx, [ebp - 0x398]
call fcn.00407a40
mov byte [ebp - 4], 0x1c
push 0
push 1
lea ecx, [ebp - 0x37c]
call fcn.00407a40
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x360]
call fcn.00407a40
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x108]
jge 0x5099e9
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0x9d8], edx
jmp 0x5099fb
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
mov dword [ebp - 0x9d8], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x9d8]
mov dword [edx + 0x104], eax
mov ecx, dword [ebp - 0x8c8]
mov dword [ecx + 0x108], 0xffffffff
mov byte [ebp - 0x15], 1
jmp 0x509b94
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xb8]
mov dword [ebp - 0x62c], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
cmp edx, dword [ebp - 0x62c]
jge 0x509b5e
mov eax, dword [0x611c1c]
push eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
add edx, 1
push edx
lea eax, [ebp - 0x3b4]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9dc], eax
mov ecx, dword [ebp - 0x9dc]
mov dword [ebp - 0x9e0], ecx
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x104]
push eax
push 0
lea ecx, [ebp - 0x3d0]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9e4], eax
mov edx, dword [ebp - 0x9e4]
mov dword [ebp - 0x9e8], edx
mov byte [ebp - 4], 0x20
mov eax, dword [ebp - 0x9e0]
push eax
mov ecx, dword [ebp - 0x9e8]
push ecx
lea edx, [ebp - 0x3ec]
push edx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x9ec]
mov dword [ebp - 0x648], eax
mov byte [ebp - 4], 0x21
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x648]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0x20
push 0
push 1
lea ecx, [ebp - 0x3ec]
call fcn.00407a40
mov byte [ebp - 4], 0x1f
push 0
push 1
lea ecx, [ebp - 0x3d0]
call fcn.00407a40
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x3b4]
call fcn.00407a40
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x148]
je 0x509b7c
mov byte [ebp - 0x15], 1
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [eax + 0x148], edx
jmp 0x50a1f8
cmp dword [ebp + 8], 0x24
jne 0x509bb4
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x104], 0
jmp 0x50a1f8
cmp dword [ebp + 8], 0x23
jne 0x509be3
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x67c], edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x67c]
mov dword [eax + 0x104], ecx
jmp 0x50a1f8
cmp dword [ebp + 8], 0xd
jne 0x509c26
mov edx, dword [ebp - 0x8c8]
add edx, 0xa4
push edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0xa0]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xfc]
mov ecx, dword [ebp - 0x8c8]
mov ecx, dword [ecx + 0xfc]
mov edx, dword [eax]
mov eax, dword [edx]
call eax
jmp 0x50a1f8
lea ecx, [ebp - 0x685]
mov dword [ebp - 0x684], ecx
push 0
push 0
lea ecx, [ebp - 0xb8]
call fcn.00407a40
movzx edx, word [ebp + 0xc]
push edx
push 1
lea ecx, [ebp - 0xb8]
call fcn.0042ffc0
mov byte [ebp - 4], 0x22
movzx eax, word [ebp + 0xc]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc0], 0x7f
mov ecx, dword [0x6a1494]
movzx edx, byte [ecx + 0xf5]
test edx, edx
je 0x509c86
mov dword [ebp - 0xc0], 0xff
cmp dword [ebp - 0xbc], 0x20
jb 0x50a1e1
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xc0]
ja 0x50a1e1
lea ecx, [ebp - 0xb8]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xdc]
mov ecx, dword [ebp - 0x8c8]
mov ecx, dword [ecx + 0xdc]
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test eax, eax
jle 0x50a1e1
movzx ecx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0xfc]
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0xfc]
mov edx, dword [edx]
mov eax, dword [edx + 8]
call eax
movzx ecx, al
test ecx, ecx
je 0x50a1e1
mov edx, dword [ebp - 0x8c8]
cmp dword [edx + 0x108], 0xffffffff
je 0x509fc1
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x108]
cmp edx, dword [ecx + 0x104]
je 0x509fc1
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x104]
cmp edx, dword [ecx + 0x108]
jle 0x509d6e
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x9f0], ecx
jmp 0x509d80
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x9f0], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x108]
jge 0x509dae
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0x9f4], edx
jmp 0x509dc0
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
mov dword [ebp - 0x9f4], ecx
mov edx, dword [0x611c1c]
push edx
mov eax, dword [ebp - 0x9f0]
push eax
lea ecx, [ebp - 0x408]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0x9f8], eax
mov edx, dword [ebp - 0x9f8]
mov dword [ebp - 0x9fc], edx
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0x6a1]
mov dword [ebp - 0x6a0], eax
push 0
push 0
lea ecx, [ebp - 0x424]
call fcn.00407a40
movzx ecx, word [ebp + 0xc]
push ecx
push 1
lea ecx, [ebp - 0x424]
call fcn.0042ffc0
lea edx, [ebp - 0x424]
mov dword [ebp - 0xa00], edx
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x9f4]
push eax
push 0
lea ecx, [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0xa04], eax
mov edx, dword [ebp - 0xa04]
mov dword [ebp - 0xa08], edx
mov byte [ebp - 4], 0x25
mov eax, dword [ebp - 0xa00]
push eax
mov ecx, dword [ebp - 0xa08]
push ecx
lea edx, [ebp - 0x45c]
push edx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0xa0c], eax
mov eax, dword [ebp - 0xa0c]
mov dword [ebp - 0xa10], eax
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0x9fc]
push ecx
mov edx, dword [ebp - 0xa10]
push edx
lea eax, [ebp - 0x478]
push eax
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0xa14], eax
mov ecx, dword [ebp - 0xa14]
mov dword [ebp - 0x6d0], ecx
mov byte [ebp - 4], 0x27
mov edx, dword [0x611c1c]
push edx
push 0
mov eax, dword [ebp - 0x6d0]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0x26
push 0
push 1
lea ecx, [ebp - 0x478]
call fcn.00407a40
mov byte [ebp - 4], 0x25
push 0
push 1
lea ecx, [ebp - 0x45c]
call fcn.00407a40
mov byte [ebp - 4], 0x24
push 0
push 1
lea ecx, [ebp - 0x440]
call fcn.00407a40
mov byte [ebp - 4], 0x23
push 0
push 1
lea ecx, [ebp - 0x424]
call fcn.00407a40
mov byte [ebp - 4], 0x22
push 0
push 1
lea ecx, [ebp - 0x408]
call fcn.00407a40
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x104]
cmp eax, dword [edx + 0x108]
jge 0x509f84
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0xa18], edx
jmp 0x509f96
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x108]
mov dword [ebp - 0xa18], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0xa18]
mov dword [edx + 0x104], eax
mov ecx, dword [ebp - 0x8c8]
mov dword [ecx + 0x108], 0xffffffff
mov byte [ebp - 0x15], 1
jmp 0x50a1ac
mov edx, dword [0x611c1c]
push edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x104]
push ecx
lea edx, [ebp - 0x494]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0xa1c], eax
mov eax, dword [ebp - 0xa1c]
mov dword [ebp - 0xa20], eax
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x73d]
mov dword [ebp - 0x73c], ecx
push 0
push 0
lea ecx, [ebp - 0x4b0]
call fcn.00407a40
movzx edx, word [ebp + 0xc]
push edx
push 1
lea ecx, [ebp - 0x4b0]
call fcn.0042ffc0
lea eax, [ebp - 0x4b0]
mov dword [ebp - 0xa24], eax
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
push edx
push 0
lea eax, [ebp - 0x4cc]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0xa28], eax
mov ecx, dword [ebp - 0xa28]
mov dword [ebp - 0xa2c], ecx
mov byte [ebp - 4], 0x2a
mov edx, dword [ebp - 0xa24]
push edx
mov eax, dword [ebp - 0xa2c]
push eax
lea ecx, [ebp - 0x4e8]
push ecx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0xa30], eax
mov edx, dword [ebp - 0xa30]
mov dword [ebp - 0xa34], edx
mov byte [ebp - 4], 0x2b
mov eax, dword [ebp - 0xa20]
push eax
mov ecx, dword [ebp - 0xa34]
push ecx
lea edx, [ebp - 0x504]
push edx
call fcn.0040f4f0
add esp, 0xc
mov dword [ebp - 0xa38], eax
mov eax, dword [ebp - 0xa38]
mov dword [ebp - 0x76c], eax
mov byte [ebp - 4], 0x2c
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x76c]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0x2b
push 0
push 1
lea ecx, [ebp - 0x504]
call fcn.00407a40
mov byte [ebp - 4], 0x2a
push 0
push 1
lea ecx, [ebp - 0x4e8]
call fcn.00407a40
mov byte [ebp - 4], 0x29
push 0
push 1
lea ecx, [ebp - 0x4cc]
call fcn.00407a40
mov byte [ebp - 4], 0x28
push 0
push 1
lea ecx, [ebp - 0x4b0]
call fcn.00407a40
mov byte [ebp - 4], 0x22
push 0
push 1
lea ecx, [ebp - 0x494]
call fcn.00407a40
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x148]
add ecx, 1
mov edx, dword [ebp - 0x8c8]
cmp dword [edx + 0x104], ecx
je 0x50a184
mov byte [ebp - 0x15], 1
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
mov dword [eax + 0x148], edx
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x108], 0xffffffff
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
add edx, 1
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x104], edx
push 0
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x130]
call eax
jmp 0x50a1e5
mov byte [ebp - 0x17], 0
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.00407a40
mov ecx, dword [ebp - 0x8c8]
cmp dword [ecx + 0x118], 0xffffffff
je 0x50a2a2
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xb8]
mov dword [ebp - 0x7e8], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x7e8]
cmp edx, dword [ecx + 0x118]
jle 0x50a2a2
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x118]
push ecx
push 0
lea edx, [ebp - 0x520]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.004308d0
mov dword [ebp - 0xa3c], eax
mov eax, dword [ebp - 0xa3c]
mov dword [ebp - 0x808], eax
mov byte [ebp - 4], 0x2d
mov ecx, dword [0x611c1c]
push ecx
push 0
mov edx, dword [ebp - 0x808]
push edx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x520]
call fcn.00407a40
mov ecx, dword [ebp - 0x8c8]
call fcn.00507fc0
mov eax, dword [ebp - 0x8c8]
cmp dword [eax + 0x104], 0
jge 0x50a2ce
mov ecx, dword [ebp - 0x8c8]
mov dword [ecx + 0x104], 0
jmp 0x50a318
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xb8]
mov dword [ebp - 0x820], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx + 0x104]
cmp edx, dword [ebp - 0x820]
jle 0x50a318
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0xb8]
mov dword [ebp - 0x824], ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x824]
mov dword [edx + 0x104], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ecx + 0x104]
je 0x50a346
mov eax, dword [ebp - 0x8c8]
mov dword [eax + 0x10c], 0
mov ecx, dword [ebp - 0x8c8]
mov byte [ecx + 0x100], 1
push 1
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [eax + 0x130]
call edx
movzx eax, byte [ebp - 0x17]
test eax, eax
jne 0x50a380
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ecx + 0x108]
cmp eax, dword [edx + 0x104]
jne 0x50a390
mov ecx, dword [ebp - 0x8c8]
mov dword [ecx + 0x108], 0xffffffff
mov edx, dword [ebp - 0x8c8]
add edx, 0xa4
push edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0xa0]
push ecx
mov edx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0xfc]
mov ecx, dword [ebp - 0x8c8]
mov ecx, dword [ecx + 0xfc]
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
call eax
movzx ecx, al
test ecx, ecx
jne 0x50a40e
mov edx, dword [0x611c1c]
push edx
push 0
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 0xa4
call fcn.0040ac90
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x14]
mov dword [ecx + 0x104], edx
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x108], ecx
jmp 0x50a451
movzx edx, byte [ebp - 0x15]
test edx, edx
je 0x50a451
mov eax, dword [0x611c1c]
push eax
push 0
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [ebp - 0x8c8]
add ecx, 0x124
call fcn.0040ac90
mov edx, dword [ebp - 0x8c8]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x140], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ebp - 0x3c]
mov dword [ecx + 0x144], edx
mov eax, dword [ebp - 0x8c8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x8c8]
mov eax, dword [edx + 0x44]
call eax
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x38]
call fcn.00407a40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.005cbcb1
mov esp, ebp
pop ebp
ret 8