Function at 0x69c880
Capabilities:
Parse pe header

Disassembly:
push ebp
lea ebp, [esp - 0x48]
sub esp, 0x48
push 0xffffffffffffffff
push 0x81b167
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x98
cmp dword [0x935bcc], 0
mov eax, 0x935bc8
push ebx
push esi
push edi
mov ebx, edx
mov edi, ecx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x2c], edi
je 0x69c8d2
mov edx, dword [ebp + 0x50]
cmp edx, dword [eax]
je 0x69ca44
add eax, 8
cmp dword [eax + 4], 0
jne 0x69c8c1
mov ecx, str.Unknown_error
movsx eax, byte [ecx]
lea edx, [ebp - 0x74]
xor esi, esi
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x30], esi
test eax, eax
je 0x69cf79
nop dword [eax]
inc ecx
mov dword [ebp + 0x38], ecx
cmp eax, 0x25
jne 0x69f0d6
mov cl, byte [ecx]
test cl, cl
je 0x69f0d3
test esi, esi
jle 0x69cdd9
mov eax, dword [0x94dbf4]
mov byte [edx], 0
test al, 1
jne 0x69c95a
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x94dbf8]
lea ebx, [ebp - 0x74]
mov dword [ebp + 0x44], esi
lea ecx, [ebx + 1]
mov dword [ebp + 0x30], esi
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x69c970
push 0
push 0
sub ebx, ecx
lea eax, [ebp - 0x74]
push ebx
push eax
push 0
push 3
call dword [0x82819c]
mov ecx, eax
mov dword [ebp + 0x34], ecx
test ecx, ecx
jne 0x69ca4c
test esi, esi
je 0x69c9f8
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69c9de
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 1
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69c9f8
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69c9f8
push esi
call fcn.007984d6
add esp, 4
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69ca39
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 2
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov esi, dword [0x94dbf8]
jmp 0x69cc76
mov ecx, dword [eax + 4]
jmp 0x69c8d7
cmp ecx, dword [esi + 4]
ja 0x69ca6b
cmp dword [esi], 1
mov esi, dword [ebp + 0x30]
mov dword [ebp + 0x44], esi
jg 0x69ca6b
xor eax, eax
mov dword [esi + 8], ecx
mov word [esi + ecx*2 + 0xc], ax
jmp 0x69cc7c
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cab6
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 3
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [ebp + 0x34]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
cmp esi, dword [0x94dbf8]
jne 0x69cb31
test ecx, ecx
je 0x69cb14
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69caf8
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cbca
or dword [0x94dbf4], 1
mov dword [ebp - 4], 4
jmp 0x69cba4
mov eax, 1
xchg dword [edi], eax
mov ecx, dword [ebp + 0x34]
xor eax, eax
mov dword [edi + 8], ecx
mov dword [edi + 4], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x69cbd0
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cbca
or dword [0x94dbf4], 1
mov dword [ebp - 4], 5
jmp 0x69cba4
test ecx, ecx
je 0x69cb8d
lea eax, [ecx + ecx*2]
shr eax, 1
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp + 0x24], eax
lea eax, [eax*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69cb71
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cbca
or dword [0x94dbf4], 1
mov dword [ebp - 4], 6
jmp 0x69cba4
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x24]
mov dword [edi + 4], ecx
xor ecx, ecx
mov dword [edi + 8], eax
mov word [edi + eax*2 + 0xc], cx
jmp 0x69cbd0
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cbca
or dword [0x94dbf4], 1
mov dword [ebp - 4], 7
push 0x10
call fcn.00403650
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [eax + 4], ecx
mov edi, dword [0x94dbf8]
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cc11
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 8
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x69cc7c
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cc5a
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0xa
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69cc74
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69cc74
push esi
call fcn.007984d6
add esp, 4
mov esi, edi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x44], esi
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69ccbd
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0xb
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
lea edi, [esi + 0xc]
cmp esi, dword [0x94dbf8]
je 0x69ccdb
push dword [ebp + 0x34]
lea eax, [ebp - 0x74]
push edi
push ebx
push eax
push 0
push 0
call dword [0x82819c]
mov dword [ebp - 4], 0xc
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cd24
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0xd
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov byte [ebp - 4], 0xc
cmp esi, dword [0x94dbf8]
jne 0x69cd30
xor eax, eax
jmp 0x69cd33
mov eax, dword [esi + 8]
lea ebx, [edi + eax*2]
cmp edi, ebx
jae 0x69cd5b
mov esi, dword [ebp + 0x18]
nop dword [eax]
mov edx, dword [esi]
mov ecx, esi
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69cd58
cmp edi, ebx
jb 0x69cd40
mov esi, dword [ebp + 0x44]
mov dword [ebp - 4], 0xe
test esi, esi
je 0x69cdba
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cda0
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69cdba
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69cdba
push esi
call fcn.007984d6
add esp, 4
mov eax, dword [ebp + 0x38]
lea edx, [ebp - 0x74]
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov edi, dword [ebp + 0x2c]
mov dword [ebp - 4], 0xffffffff
mov cl, byte [eax]
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x30], esi
jmp 0x69cddc
mov eax, dword [ebp + 0x38]
inc eax
mov dword [ebp + 0x38], eax
movsx eax, cl
sub eax, 0x4c
cmp eax, 0x2a
ja case.0x69cdf6.78
movzx eax, byte [eax + 0x69f130]
jmp dword [eax*4 + 0x69f108]
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x40]
push eax
push 0x8a6918
push ebx
call fcn.006317a0
mov edx, dword [ebp + 0x34]
add esp, 0xc
jmp case.0x69cdf6.78
mov eax, dword [edi + 0x14]
push dword [eax + 0x4a4]
push 0x8873c0
push ebx
call fcn.006317a0
mov edx, dword [ebp + 0x34]
add esp, 0xc
jmp case.0x69cdf6.78
mov eax, dword [ebp + 0x54]
add eax, 8
mov dword [ebp + 0x54], eax
mov esi, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x14], edx
cmp esi, 0xb
jne 0x69ce64
cmp edx, 0x20000
je 0x69cf8b
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x69cf8b
mov eax, edx
shr eax, 0x10
and eax, 0xf
cmp eax, 2
jne 0x69cf8b
mov edx, esi
lea ecx, [ebp + 0x10]
call fcn.00649650
mov dword [ebp - 4], 0xf
mov esi, dword [ebp + 0x10]
lea edi, [esi + 0xc]
test edi, edi
je 0x69ceeb
cmp word [edi], 0
mov eax, edi
je 0x69ceb9
nop word [eax + eax]
add eax, 2
cmp word [eax], 0
jne 0x69ceb0
sub eax, edi
sar eax, 1
lea eax, [edi + eax*2]
mov dword [ebp + 0x24], eax
cmp edi, eax
jae 0x69ceeb
mov esi, eax
nop dword [eax]
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69cee8
cmp edi, esi
jb 0x69ced0
mov esi, dword [ebp + 0x10]
mov dword [ebp - 4], 0x10
test esi, esi
je 0x69cf4a
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69cf30
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
mov dword [eax + 8], 0
xor ecx, ecx
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69cf4a
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69cf4a
push esi
call fcn.007984d6
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 0x34]
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x38]
movsx eax, byte [ecx]
test eax, eax
jne 0x69c8f0
test esi, esi
jle 0x69cf79
mov byte [edx], al
mov ecx, ebx
lea eax, [ebp - 0x74]
push eax
call fcn.005df1a7
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
lea esp, [ebp + 0x48]
pop ebp
ret
push edx
push esi
call fcn.00631390
mov edi, eax
add esp, 8
mov eax, dword [0x94dbf4]
mov dword [ebp + 0x24], edi
test al, 1
jne 0x69cfe2
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x11
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x94dbf8]
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x3c], esi
test edi, edi
je 0x69d002
mov ebx, edi
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x69cff7
sub ebx, ecx
jmp 0x69d009
xor edi, edi
xor ebx, ebx
mov dword [ebp + 0x24], edi
push 0
push 0
push ebx
push edi
push 0
push 3
call dword [0x82819c]
mov dword [ebp + 0x40], eax
test eax, eax
jne 0x69d0d3
test esi, esi
je 0x69d085
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d06b
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x12
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69d085
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69d085
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d0c8
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x13
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov esi, dword [0x94dbf8]
jmp 0x69d30b
cmp eax, dword [esi + 4]
ja 0x69d0f2
cmp dword [esi], 1
mov esi, dword [ebp + 0x3c]
mov dword [ebp + 0x44], esi
jg 0x69d0f2
xor ecx, ecx
mov dword [esi + 8], eax
mov word [esi + eax*2 + 0xc], cx
jmp 0x69d311
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d13f
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x14
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x40]
cmp esi, dword [0x94dbf8]
jne 0x69d1be
test eax, eax
je 0x69d19f
lea eax, [eax*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69d183
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d25b
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x15
jmp 0x69d235
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov dword [edi + 8], eax
mov dword [edi + 4], eax
mov word [edi + eax*2 + 0xc], cx
jmp 0x69d261
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d25b
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x16
jmp 0x69d235
test eax, eax
je 0x69d21c
lea ecx, [eax + eax*2]
shr ecx, 1
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp + 0x1c], ecx
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69d200
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d25b
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x17
jmp 0x69d235
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x1c]
mov dword [edi + 4], ecx
xor ecx, ecx
mov dword [edi + 8], eax
mov word [edi + eax*2 + 0xc], cx
jmp 0x69d261
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d25b
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x18
push 0x10
call fcn.00403650
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [eax + 4], ecx
mov edi, dword [0x94dbf8]
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d2a4
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x19
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x69d311
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d2ef
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x1b
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69d309
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69d309
push esi
call fcn.007984d6
add esp, 4
mov esi, edi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x44], esi
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d354
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x1c
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
lea edi, [esi + 0xc]
cmp esi, dword [0x94dbf8]
je 0x69d371
push dword [ebp + 0x40]
push edi
push ebx
push dword [ebp + 0x24]
push 0
push 0
call dword [0x82819c]
mov dword [ebp - 4], 0x1d
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d3bc
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x1e
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov byte [ebp - 4], 0x1d
cmp esi, dword [0x94dbf8]
jne 0x69d3c8
xor eax, eax
jmp 0x69d3cb
mov eax, dword [esi + 8]
mov ebx, dword [ebp + 0x18]
lea eax, [edi + eax*2]
mov dword [ebp + 0x1c], eax
cmp edi, eax
jae 0x69d3fb
mov esi, eax
nop word [eax + eax]
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69d3f8
cmp edi, esi
jb 0x69d3e0
mov esi, dword [ebp + 0x44]
mov dword [ebp - 4], 0x1f
test esi, esi
je 0x69d45c
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d442
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69d45c
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69d45c
push esi
call fcn.007984d6
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d4ad
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x20
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x94dbf8]
push 0
push 0
push 1
push 0x8a6914
push 0
push 3
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x40], esi
call dword [0x82819c]
mov dword [ebp + 0x3c], eax
test eax, eax
jne 0x69d598
test esi, esi
je 0x69d542
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d528
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x21
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69d548
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69d542
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d58d
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x22
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
mov esi, dword [0x94dbf8]
jmp 0x69d7fa
cmp eax, dword [esi + 4]
ja 0x69d5bd
cmp dword [esi], 1
mov esi, dword [ebp + 0x40]
mov dword [ebp + 0x44], esi
jg 0x69d5bd
xor ecx, ecx
mov dword [esi + 8], eax
mov word [esi + eax*2 + 0xc], cx
mov ecx, dword [0x94dbf4]
jmp 0x69d800
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d612
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x23
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
mov eax, dword [ebp + 0x3c]
cmp esi, dword [0x94dbf8]
jne 0x69d695
test eax, eax
je 0x69d67a
lea eax, [eax*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69d658
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d740
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x24
jmp 0x69d710
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x3c]
xor ecx, ecx
mov dword [edi + 8], eax
mov dword [edi + 4], eax
mov word [edi + eax*2 + 0xc], cx
mov ecx, dword [0x94dbf4]
jmp 0x69d746
test cl, 1
jne 0x69d740
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x25
jmp 0x69d710
test eax, eax
je 0x69d6fb
lea ecx, [eax + eax*2]
shr ecx, 1
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp + 0x1c], ecx
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69d6d9
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69d740
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x26
jmp 0x69d710
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x1c]
mov dword [edi + 4], ecx
xor ecx, ecx
mov dword [edi + 8], eax
mov word [edi + eax*2 + 0xc], cx
mov ecx, dword [0x94dbf4]
jmp 0x69d746
test cl, 1
jne 0x69d740
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x27
push 0x10
call fcn.00403650
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [0x94dbf8], eax
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov edi, dword [0x94dbf8]
test cl, 1
jne 0x69d78b
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x28
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x69d800
test cl, 1
jne 0x69d7d8
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x2a
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69d7f8
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69d7f2
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
mov esi, edi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
test cl, 1
jne 0x69d845
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x2b
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
lea edi, [esi + 0xc]
cmp esi, dword [0x94dbf8]
je 0x69d86b
push dword [ebp + 0x3c]
push edi
push 1
push 0x8a6914
push 0
push 0
call dword [0x82819c]
mov ecx, dword [0x94dbf4]
mov dword [ebp - 4], 0x2c
test cl, 1
jne 0x69d8b8
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov byte [ebp - 4], 0x2d
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 0x2c
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
jne 0x69d8c4
xor eax, eax
jmp 0x69d8c7
mov eax, dword [esi + 8]
lea eax, [edi + eax*2]
mov dword [ebp + 0x1c], eax
cmp edi, eax
jae 0x69d8f4
mov esi, eax
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69d8eb
cmp edi, esi
jb 0x69d8d3
mov ecx, dword [0x94dbf4]
mov esi, dword [ebp + 0x44]
mov dword [ebp - 4], 0x2e
test esi, esi
je 0x69d951
test cl, 1
jne 0x69d937
or ecx, 1
push 0x10
mov dword [0x94dbf4], ecx
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69d951
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69d951
push esi
call fcn.007984d6
add esp, 4
push dword [ebp + 0x14]
mov ecx, dword [ebp + 0x2c]
mov edx, ebx
push dword [ebp + 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.006314b0
mov eax, dword [0x94dbf4]
add esp, 8
test al, 1
jne 0x69d9bc
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov dword [ebp - 4], 0x2f
call fcn.00403650
mov esi, eax
add esp, 4
mov dword [ebp + 0x44], esi
mov eax, 1
xchg dword [esi], eax
xor eax, eax
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov word [esi + 0xc], ax
mov dword [0x94dbf8], esi
mov dword [ebp - 4], 0xffffffff
jmp 0x69d9c5
mov esi, dword [0x94dbf8]
mov dword [ebp + 0x44], esi
push 0
push 0
push 1
push 0x888018
push 0
push 3
mov dword [ebp + 0x40], esi
call dword [0x82819c]
mov ecx, eax
mov dword [ebp + 0x3c], ecx
test ecx, ecx
jne 0x69da95
test esi, esi
je 0x69da49
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69da2f
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x30
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69da49
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69da49
push esi
call fcn.007984d6
add esp, 4
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69da8a
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x31
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov esi, dword [0x94dbf8]
jmp 0x69dcbf
cmp ecx, dword [esi + 4]
ja 0x69dab4
cmp dword [esi], 1
mov esi, dword [ebp + 0x40]
mov dword [ebp + 0x44], esi
jg 0x69dab4
xor eax, eax
mov dword [esi + 8], ecx
mov word [esi + ecx*2 + 0xc], ax
jmp 0x69dcc5
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69daff
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x32
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov word [eax + 0xc], cx
mov ecx, dword [ebp + 0x3c]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
jne 0x69db7a
test ecx, ecx
je 0x69db5d
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69db41
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dc13
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x33
jmp 0x69dbed
mov eax, 1
xchg dword [edi], eax
mov ecx, dword [ebp + 0x3c]
xor eax, eax
mov dword [edi + 8], ecx
mov dword [edi + 4], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x69dc19
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dc13
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x34
jmp 0x69dbed
test ecx, ecx
je 0x69dbd6
lea eax, [ecx + ecx*2]
shr eax, 1
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp + 0x28], eax
lea eax, [eax*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69dbba
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dc13
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x35
jmp 0x69dbed
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x28]
mov dword [edi + 4], ecx
xor ecx, ecx
mov dword [edi + 8], eax
mov word [edi + eax*2 + 0xc], cx
jmp 0x69dc19
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dc13
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x36
push 0x10
call fcn.00403650
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [eax + 4], ecx
mov edi, dword [0x94dbf8]
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dc5a
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x37
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x69dcc5
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dca3
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x39
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69dcbd
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69dcbd
push esi
call fcn.007984d6
add esp, 4
mov esi, edi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dd06
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x3a
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
lea edi, [esi + 0xc]
cmp esi, dword [0x94dbf8]
je 0x69dd26
push dword [ebp + 0x3c]
push edi
push 1
push 0x888018
push 0
push 0
call dword [0x82819c]
mov dword [ebp - 4], 0x3b
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69dd6f
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x3c
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov byte [ebp - 4], 0x3b
cmp esi, dword [0x94dbf8]
jne 0x69dd7b
xor eax, eax
jmp 0x69dd7e
mov eax, dword [esi + 8]
lea eax, [edi + eax*2]
mov dword [ebp + 0x28], eax
cmp edi, eax
jae 0x69ddab
mov esi, eax
nop word [eax + eax]
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69dda8
cmp edi, esi
jb 0x69dd90
mov esi, dword [ebp + 0x44]
mov dword [ebp - 4], 0x3d
jmp 0x69cef2
mov eax, dword [ebp + 0x54]
add eax, 8
mov dword [ebp + 0x54], eax
mov edi, dword [eax - 8]
mov esi, dword [eax - 4]
cmp edi, 0xb
jne 0x69ddd7
cmp esi, 0x20000
je 0x69de57
mov ecx, esi
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x69de57
mov eax, esi
shr eax, 0x10
and eax, 0xf
cmp eax, 2
jne 0x69de57
mov edx, edi
lea ecx, [ebp + 0xc]
call fcn.00649650
mov dword [ebp - 4], 0x3e
mov esi, dword [ebp + 0xc]
lea edi, [esi + 0xc]
test edi, edi
je 0x69de4b
cmp word [edi], 0
mov eax, edi
je 0x69de1e
add eax, 2
cmp word [eax], 0
jne 0x69de15
sub eax, edi
sar eax, 1
lea eax, [edi + eax*2]
mov dword [ebp + 0x28], eax
cmp edi, eax
jae 0x69de4b
mov esi, eax
nop
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69de48
cmp edi, esi
jb 0x69de30
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], 0x3f
jmp 0x69cef2
sub esp, 8
lea ecx, [ebp - 0xa4]
mov eax, esp
push 0
push ebx
push dword [ebp + 0x2c]
mov dword [eax], 0x89683c
mov dword [eax + 4], 1
call fcn.006260c0
push 1
push esi
push edi
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x40
call fcn.0062c240
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xffffffff
call fcn.00626390
jmp 0x69cf51
mov eax, dword [ebp + 0x54]
add eax, 8
mov dword [ebp + 0x54], eax
mov edi, dword [eax - 8]
mov esi, dword [eax - 4]
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x28], esi
cmp edi, 0xb
jne 0x69decd
cmp esi, 0x20000
je 0x69df57
mov ecx, esi
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x69df57
mov eax, esi
shr eax, 0x10
and eax, 0xf
cmp eax, 2
jne 0x69df57
mov edx, edi
lea ecx, [ebp + 8]
call fcn.00649650
mov dword [ebp - 4], 0x41
mov esi, dword [ebp + 8]
lea edi, [esi + 0xc]
test edi, edi
je 0x69df4b
cmp word [edi], 0
mov eax, edi
je 0x69df19
nop dword [eax + eax]
add eax, 2
cmp word [eax], 0
jne 0x69df10
sub eax, edi
sar eax, 1
lea eax, [edi + eax*2]
mov dword [ebp + 0x28], eax
cmp edi, eax
jae 0x69df4b
mov esi, eax
nop dword [eax]
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69df48
cmp edi, esi
jb 0x69df30
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 0x42
jmp 0x69cef2
push esi
push edi
call fcn.005df677
add esp, 8
push esi
push edi
test al, al
je 0x69e4da
mov edi, dword [ebp + 0x2c]
lea ecx, [ebp]
mov edx, edi
mov dword [ebp + 0x24], 0
call fcn.005df693
mov ecx, dword [ebp]
add esp, 8
mov eax, dword [ebp + 4]
mov dword [ebp + 0x3c], ecx
lea eax, [ecx + eax*8]
mov dword [ebp + 0x20], eax
cmp ecx, eax
je 0x69e4cf
nop dword [eax]
mov eax, dword [ecx]
mov dword [ebp + 0x1c], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 0x24]
mov dword [ebp + 0x14], eax
mov eax, ecx
inc ecx
mov dword [ebp + 0x24], ecx
test eax, eax
jle 0x69e4ab
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69e00d
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov dword [ebp - 4], 0x43
call fcn.00403650
mov esi, eax
add esp, 4
mov dword [ebp + 0x44], esi
mov eax, 1
xchg dword [esi], eax
xor eax, eax
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov word [esi + 0xc], ax
mov dword [0x94dbf8], esi
mov dword [ebp - 4], 0xffffffff
jmp 0x69e016
mov esi, dword [0x94dbf8]
mov dword [ebp + 0x44], esi
push 0
push 0
push 1
push 0x883898
push 0
push 3
mov dword [ebp + 0x40], esi
call dword [0x82819c]
mov ebx, eax
test ebx, ebx
jne 0x69e0ef
test esi, esi
je 0x69e099
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e07f
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x44
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], ebx
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], ebx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69e09f
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69e099
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e0e4
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x45
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
mov esi, dword [0x94dbf8]
jmp 0x69e348
cmp ebx, dword [esi + 4]
ja 0x69e114
cmp dword [esi], 1
mov esi, dword [ebp + 0x40]
mov dword [ebp + 0x44], esi
jg 0x69e114
mov dword [esi + 8], ebx
xor eax, eax
mov word [esi + ebx*2 + 0xc], ax
mov ecx, dword [0x94dbf4]
jmp 0x69e34e
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e166
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x46
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
jne 0x69e1e6
test ebx, ebx
je 0x69e1cb
lea eax, [ebx*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69e1ac
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e28e
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x47
jmp 0x69e25e
mov eax, 1
xchg dword [edi], eax
mov ecx, dword [0x94dbf4]
xor eax, eax
mov dword [edi + 8], ebx
mov dword [edi + 4], ebx
mov word [edi + ebx*2 + 0xc], ax
jmp 0x69e294
test cl, 1
jne 0x69e28e
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x48
jmp 0x69e25e
test ebx, ebx
je 0x69e249
lea eax, [ebx + ebx*2]
shr eax, 1
cmp eax, ebx
cmovb eax, ebx
mov dword [ebp + 0x28], eax
lea eax, [eax*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69e22a
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e28e
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x49
jmp 0x69e25e
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x28]
mov ecx, dword [0x94dbf4]
mov dword [edi + 4], eax
xor eax, eax
mov dword [edi + 8], ebx
mov word [edi + ebx*2 + 0xc], ax
jmp 0x69e294
test cl, 1
jne 0x69e28e
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x4a
push 0x10
call fcn.00403650
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [0x94dbf8], eax
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov edi, dword [0x94dbf8]
test cl, 1
jne 0x69e2d9
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x4b
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x69e34e
test cl, 1
jne 0x69e326
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x4d
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69e346
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69e340
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
mov esi, edi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
test cl, 1
jne 0x69e393
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x4e
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
lea edi, [esi + 0xc]
cmp esi, dword [0x94dbf8]
je 0x69e3b7
push ebx
push edi
push 1
push 0x883898
push 0
push 0
call dword [0x82819c]
mov ecx, dword [0x94dbf4]
mov dword [ebp - 4], 0x4f
test cl, 1
jne 0x69e404
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov byte [ebp - 4], 0x50
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 0x4f
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
jne 0x69e410
xor eax, eax
jmp 0x69e413
mov eax, dword [esi + 8]
lea ebx, [edi + eax*2]
cmp edi, ebx
jae 0x69e441
mov esi, dword [ebp + 0x18]
nop dword [eax]
mov edx, dword [esi]
mov ecx, esi
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69e438
cmp edi, ebx
jb 0x69e420
mov ecx, dword [0x94dbf4]
mov esi, dword [ebp + 0x44]
mov dword [ebp - 4], 0x51
test esi, esi
je 0x69e49e
test cl, 1
jne 0x69e484
or ecx, 1
push 0x10
mov dword [0x94dbf4], ecx
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69e49e
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69e49e
push esi
call fcn.007984d6
add esp, 4
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x2c]
mov dword [ebp - 4], 0xffffffff
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push dword [ebp + 0x1c]
call fcn.006314b0
mov ecx, dword [ebp + 0x3c]
add esp, 8
add ecx, 8
mov dword [ebp + 0x3c], ecx
cmp ecx, dword [ebp + 0x20]
jne 0x69dfa0
mov edx, dword [ebp + 0x34]
mov esi, dword [ebp + 0x30]
jmp case.0x69cdf6.78
call fcn.00631390
mov edi, eax
add esp, 8
mov eax, dword [0x94dbf4]
mov dword [ebp + 0x24], edi
test al, 1
jne 0x69e52f
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x52
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x94dbf8]
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x40], esi
test edi, edi
je 0x69e54f
mov ebx, edi
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x69e544
sub ebx, ecx
jmp 0x69e556
xor edi, edi
xor ebx, ebx
mov dword [ebp + 0x24], edi
push 0
push 0
push ebx
push edi
push 0
push 3
call dword [0x82819c]
mov dword [ebp + 0x3c], eax
test eax, eax
jne 0x69e620
test esi, esi
je 0x69e5d2
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e5b8
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x53
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69e5d2
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69e5d2
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e615
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x54
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov esi, dword [0x94dbf8]
jmp 0x69e858
cmp eax, dword [esi + 4]
ja 0x69e63f
cmp dword [esi], 1
mov esi, dword [ebp + 0x40]
mov dword [ebp + 0x44], esi
jg 0x69e63f
xor ecx, ecx
mov dword [esi + 8], eax
mov word [esi + eax*2 + 0xc], cx
jmp 0x69e85e
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e68c
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x55
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x3c]
cmp esi, dword [0x94dbf8]
jne 0x69e70b
test eax, eax
je 0x69e6ec
lea eax, [eax*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69e6d0
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e7a8
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x56
jmp 0x69e782
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x3c]
xor ecx, ecx
mov dword [edi + 8], eax
mov dword [edi + 4], eax
mov word [edi + eax*2 + 0xc], cx
jmp 0x69e7ae
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e7a8
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x57
jmp 0x69e782
test eax, eax
je 0x69e769
lea ecx, [eax + eax*2]
shr ecx, 1
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp + 0x20], ecx
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69e74d
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e7a8
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x58
jmp 0x69e782
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x20]
mov dword [edi + 4], ecx
xor ecx, ecx
mov dword [edi + 8], eax
mov word [edi + eax*2 + 0xc], cx
jmp 0x69e7ae
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e7a8
or dword [0x94dbf4], 1
mov dword [ebp - 4], 0x59
push 0x10
call fcn.00403650
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [eax + 4], ecx
mov edi, dword [0x94dbf8]
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e7f1
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x5a
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x69e85e
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e83c
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x5c
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69e856
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69e856
push esi
call fcn.007984d6
add esp, 4
mov esi, edi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e8a1
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x5d
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
lea edi, [esi + 0xc]
cmp esi, dword [0x94dbf8]
je 0x69e8be
push dword [ebp + 0x3c]
push edi
push ebx
push dword [ebp + 0x24]
push 0
push 0
call dword [0x82819c]
mov dword [ebp - 4], 0x5e
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e909
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x5f
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov byte [ebp - 4], 0x5e
cmp esi, dword [0x94dbf8]
jne 0x69e915
xor eax, eax
jmp 0x69e918
mov eax, dword [esi + 8]
mov ebx, dword [ebp + 0x18]
lea eax, [edi + eax*2]
mov dword [ebp + 0x20], eax
cmp edi, eax
jae 0x69e942
mov esi, eax
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69e93f
cmp edi, esi
jb 0x69e927
mov esi, dword [ebp + 0x44]
mov dword [ebp - 4], 0x60
test esi, esi
je 0x69e9a3
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e989
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69e9a3
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69e9a3
push esi
call fcn.007984d6
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69e9f4
or dword [0x94dbf4], 1
push 0x10
mov dword [ebp - 4], 0x61
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x94dbf8]
push 0
push 0
push 1
push 0x8a6914
push 0
push 3
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x40], esi
call dword [0x82819c]
mov dword [ebp + 0x3c], eax
test eax, eax
jne 0x69eadf
test esi, esi
je 0x69ea89
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69ea6f
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x62
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69ea8f
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69ea89
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69ead4
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x63
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
mov esi, dword [0x94dbf8]
jmp 0x69ed41
cmp eax, dword [esi + 4]
ja 0x69eb04
cmp dword [esi], 1
mov esi, dword [ebp + 0x40]
mov dword [ebp + 0x44], esi
jg 0x69eb04
xor ecx, ecx
mov dword [esi + 8], eax
mov word [esi + eax*2 + 0xc], cx
mov ecx, dword [0x94dbf4]
jmp 0x69ed47
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69eb59
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x64
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
mov eax, dword [ebp + 0x3c]
cmp esi, dword [0x94dbf8]
jne 0x69ebdc
test eax, eax
je 0x69ebc1
lea eax, [eax*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69eb9f
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69ec87
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x65
jmp 0x69ec57
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x3c]
xor ecx, ecx
mov dword [edi + 8], eax
mov dword [edi + 4], eax
mov word [edi + eax*2 + 0xc], cx
mov ecx, dword [0x94dbf4]
jmp 0x69ec8d
test cl, 1
jne 0x69ec87
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x66
jmp 0x69ec57
test eax, eax
je 0x69ec42
lea ecx, [eax + eax*2]
shr ecx, 1
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp + 0x20], ecx
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov edi, eax
add esp, 4
test edi, edi
jne 0x69ec20
mov ecx, dword [0x94dbf4]
test cl, 1
jne 0x69ec87
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x67
jmp 0x69ec57
mov eax, 1
xchg dword [edi], eax
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x20]
mov dword [edi + 4], ecx
xor ecx, ecx
mov dword [edi + 8], eax
mov word [edi + eax*2 + 0xc], cx
mov ecx, dword [0x94dbf4]
jmp 0x69ec8d
test cl, 1
jne 0x69ec87
or ecx, 1
mov dword [0x94dbf4], ecx
mov dword [ebp - 4], 0x68
push 0x10
call fcn.00403650
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [0x94dbf8], eax
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov edi, dword [0x94dbf8]
test cl, 1
jne 0x69ecd2
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x69
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x69ed47
test cl, 1
jne 0x69ed1f
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x6b
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69ed3f
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69ed39
push esi
call fcn.007984d6
add esp, 4
mov ecx, dword [0x94dbf4]
mov esi, edi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
test cl, 1
jne 0x69ed8c
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov dword [ebp - 4], 0x6c
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
lea edi, [esi + 0xc]
cmp esi, dword [0x94dbf8]
je 0x69edb2
push dword [ebp + 0x3c]
push edi
push 1
push 0x8a6914
push 0
push 0
call dword [0x82819c]
mov ecx, dword [0x94dbf4]
mov dword [ebp - 4], 0x6d
test cl, 1
jne 0x69edff
or ecx, 1
mov dword [0x94dbf4], ecx
push 0x10
mov byte [ebp - 4], 0x6e
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 0x6d
mov word [eax + 0xc], cx
mov ecx, dword [0x94dbf4]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
jne 0x69ee0b
xor eax, eax
jmp 0x69ee0e
mov eax, dword [esi + 8]
lea eax, [edi + eax*2]
mov dword [ebp + 0x20], eax
cmp edi, eax
jae 0x69ee41
mov esi, eax
nop word [eax + eax]
mov edx, dword [ebx]
mov ecx, ebx
movzx eax, word [edi]
push eax
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x69ee38
cmp edi, esi
jb 0x69ee20
mov ecx, dword [0x94dbf4]
mov esi, dword [ebp + 0x44]
mov dword [ebp - 4], 0x6f
test esi, esi
je 0x69ee9e
test cl, 1
jne 0x69ee84
or ecx, 1
push 0x10
mov dword [0x94dbf4], ecx
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x69ee9e
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69ee9e
push esi
call fcn.007984d6
add esp, 4
push dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov edx, ebx
push dword [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.006314b0
mov eax, dword [0x94dbf4]
add esp, 8
test al, 1
jne 0x69ef06
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov dword [ebp - 4], 0x70
call fcn.00403650
mov esi, eax
add esp, 4
mov eax, 1
xchg dword [esi], eax
xor eax, eax
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov word [esi + 0xc], ax
mov dword [0x94dbf8], esi
mov dword [ebp - 4], 0xffffffff
jmp 0x69ef0c
mov esi, dword [0x94dbf8]
push 0
push 0
push 1
push 0x888018
push 0
push 3
mov dword [ebp + 0x44], esi
call dword [0x82819c]
mov edi, eax
test edi, edi
jne 0x69ef95
test esi, esi
je 0x69ef8c
mov eax, dword [0x94dbf4]
test al, 1
jne 0x69ef71
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov dword [ebp - 4], 0x71
call fcn.00403650
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], edi
mov dword [eax + 4], edi
mov word [eax + 0xc], cx
mov dword [0x94dbf8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x69ef76
mov eax, dword [0x94dbf8]
cmp esi, eax
je 0x69ef8c
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x69ef8c
push esi
call fcn.007984d6
add esp, 4
call fcn.0042d185
mov esi, eax
jmp 0x69efde
cmp edi, dword [esi + 4]
ja 0x69efae
cmp dword [esi], 1
mov esi, dword [ebp + 0x44]
jg 0x69efae
xor eax, eax
mov dword [esi + 8], edi
mov word [esi + edi*2 + 0xc], ax
jmp 0x69efe1
call fcn.0042d185
mov ecx, edi
cmp esi, eax
jne 0x69efc0
call fcn.0042ca0a
jmp 0x69efc5
call fcn.0042ca41
mov dword [ebp + 0x40], eax
call fcn.0042d185
cmp dword [ebp + 0x40], eax
je 0x69efe1
xor dl, dl
mov ecx, esi
call fcn.0042d1d2
mov esi, dword [ebp + 0x40]
mov dword [ebp + 0x44], esi
call fcn.0042d185
cmp esi, eax
je 0x69f000
push edi
lea eax, [esi + 0xc]
push eax
push 1
push 0x888018
push 0
push 0
call dword [0x82819c]
lea ecx, [ebp + 0x44]
mov dword [ebp - 4], 0x72
lea edi, [esi + 0xc]
call fcn.005dfe95
push eax
push edi
mov ecx, ebx
call fcn.00631740
xor dl, dl
mov dword [ebp - 4], 0x73
mov ecx, esi
call fcn.0042d1d2
jmp 0x69cf4a
mov edi, dword [ebp + 0x54]
mov ecx, ebx
add edi, 4
mov dword [ebp + 0x54], edi
push dword [edi - 4]
call fcn.005df1a7
mov edx, dword [ebp + 0x34]
jmp 0x69cf57
mov edi, dword [ebp + 0x54]
add edi, 4
mov dword [ebp + 0x54], edi
mov esi, dword [edi - 4]
movzx eax, word [esi]
test ax, ax
je 0x69cf54
mov ecx, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
cmp cx, 0x20
ja 0x69f074
push 0x20
jmp 0x69f078
movzx eax, cx
push eax
mov ecx, ebx
call edx
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x69f065
jmp 0x69cf51
mov edi, dword [ebp + 0x54]
add edi, 4
mov dword [ebp + 0x54], edi
push dword [edi - 4]
push 0x8873c0
push ebx
call fcn.006317a0
mov edx, dword [ebp + 0x34]
add esp, 0xc
jmp 0x69cf57
mov eax, dword [ebp + 0x54]
add eax, 4
mov dword [ebp + 0x54], eax
push dword [eax - 4]
push str._02x
push ebx
call fcn.006317a0
mov edx, dword [ebp + 0x34]
add esp, 0xc
jmp case.0x69cdf6.78
mov ecx, dword [ebp + 0x38]
inc esi
mov byte [edx], al
inc edx
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], edx
cmp esi, 0x64
jl 0x69cf5d
lea eax, [ebp - 0x74]
mov byte [edx], 0
push eax
mov ecx, ebx
call fcn.005df1a7
lea edx, [ebp - 0x74]
xor esi, esi
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x30], esi
jmp case.0x69cdf6.78