Function at 0x411800
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x465015
mov eax, dword fs:[0]
push eax
sub esp, 0x170
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4844a0]
xor eax, esp
push eax
lea eax, [esp + 0x184]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
xor ebp, ebp
push 0x194
mov dword [esp + 0x190], ebp
call fcn.004392c2
add esp, 4
cmp eax, ebp
je 0x41186c
push fcn.00401ad0
push fcn.00401c70
push 0x64
lea esi, [eax + 4]
push 4
push esi
mov dword [eax], 0x64
call fcn.0044da8b
jmp 0x41186e
xor esi, esi
mov dword [edi + 0x474], esi
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41188e
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
lea ecx, [esp + 0xc4]
mov byte [esp + 0x18c], 1
call fcn.0044414b
lea ecx, [esp + 0xf4]
mov byte [esp + 0x18c], 2
call fcn.0044414b
mov byte [esp + 0x18c], 3
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4118e8
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x74], eax
mov byte [esp + 0x18c], 4
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41191a
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x50], eax
push 0x5c
lea ecx, [esp + 0x198]
push ecx
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x198], 5
mov dword [esp + 0x2c], ebp
mov dword [edi + 0x480], ebp
call fcn.00404fe0
push 0x46e97c
push eax
lea eax, [esp + 0x5c]
mov bl, 6
push eax
mov byte [esp + 0x1a4], bl
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea ecx, [esp + 0x94]
push ecx
mov byte [esp + 0x1b0], 7
call fcn.004020b0
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
add esp, 0x24
mov byte [esp + 0x18c], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4119b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4119d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x74]
push ebp
push ecx
lea ecx, [esp + 0xcc]
call fcn.004441d7
cmp eax, ebp
je 0x412b5f
lea ecx, [esp + 0xc4]
call fcn.00443e49
lea ecx, [esp + 0xc4]
mov dword [esp + 0x70], eax
call fcn.00444112
test eax, eax
jne 0x412b4e
mov edx, dword [esp + 0xc4]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0xc8]
call eax
test eax, eax
je 0x412896
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0xc8]
call fcn.00444376
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x190], 8
call fcn.00401ff0
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411a7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x64]
push eax
mov byte [esp + 0x1a4], 9
call fcn.004020b0
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411ad7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
push 0
push ecx
lea ecx, [esp + 0xfc]
call fcn.004441d7
test eax, eax
je 0x411c6b
lea ecx, [esp + 0xf4]
call fcn.00443e49
mov dword [esp + 0x28], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0xf8]
mov byte [esp + 0x190], 0xa
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x18c], 0xb
je 0x411b9e
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x411b8c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x411b8c
push eax
call fcn.00401ba0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x411b83
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x411b9e
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00401de0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411bc6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x474]
mov esi, dword [edx + eax*4]
lea ebp, [edx + eax*4]
add eax, 1
lea ebx, [edi - 0x10]
sub esi, 0x10
cmp ebx, esi
mov dword [esp + 0x20], eax
je 0x411c2f
cmp dword [esi + 0xc], 0
jl 0x411c23
mov eax, dword [ebx]
cmp eax, dword [esi]
jne 0x411c23
push ebx
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x411c1b
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp], edi
jmp 0x411c2f
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebp
call fcn.00401de0
mov eax, dword [esp + 0x24]
add dword [eax + 0x480], 1
mov byte [esp + 0x18c], 5
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411c5b
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
cmp dword [esp + 0x28], 0
jne 0x411af2
jmp 0x412896
lea ecx, [esp + 0x10c]
call fcn.0044414b
lea ecx, [esp + 0x16c]
mov byte [esp + 0x18c], 0xc
call fcn.0044414b
mov byte [esp + 0x18c], 0xd
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0x18c], 0xe
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
push str..
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x64]
push edx
mov byte [esp + 0x198], 0xf
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x1a4], 0x10
call fcn.004020b0
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411d44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x34]
push 0
push ecx
lea ecx, [esp + 0x114]
call fcn.004441d7
test eax, eax
je 0x41281e
nop
lea ecx, [esp + 0x10c]
call fcn.00443e49
lea ecx, [esp + 0x10c]
mov dword [esp + 0x4c], eax
call fcn.00444112
test eax, eax
jne 0x412813
mov edx, dword [esp + 0x10c]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0x110]
call eax
test eax, eax
je 0x412813
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x110]
call fcn.00444376
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x190], 0x11
call fcn.00401ff0
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0xf
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411df2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x6c]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x1a4], 0x12
call fcn.004020b0
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411e4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push 0
push ecx
lea ecx, [esp + 0x174]
call fcn.004441d7
test eax, eax
je 0x411fef
jmp 0x411e70
lea ecx, [esp + 0x16c]
call fcn.00443e49
mov dword [esp + 0x28], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x170]
mov byte [esp + 0x190], 0x13
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x18c], 0x14
je 0x411f1f
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x411f0d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x411f0d
push eax
call fcn.00401ba0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x411f04
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x411f1f
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00401de0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411f4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x474]
mov esi, dword [edx + eax*4]
lea ebp, [edx + eax*4]
add eax, 1
lea ebx, [edi - 0x10]
sub esi, 0x10
cmp ebx, esi
mov dword [esp + 0x20], eax
je 0x411fb3
cmp dword [esi + 0xc], 0
jl 0x411fa7
mov eax, dword [ebx]
cmp eax, dword [esi]
jne 0x411fa7
push ebx
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x411f9f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp], edi
jmp 0x411fb3
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebp
call fcn.00401de0
mov eax, dword [esp + 0x24]
add dword [eax + 0x480], 1
mov byte [esp + 0x18c], 0xf
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411fdf
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
cmp dword [esp + 0x28], 0
jne 0x411e70
jmp 0x412813
lea ecx, [esp + 0xdc]
call fcn.0044414b
lea ecx, [esp + 0x154]
mov byte [esp + 0x18c], 0x15
call fcn.0044414b
mov byte [esp + 0x18c], 0x16
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov byte [esp + 0x18c], 0x17
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
push str..
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x74]
push edx
mov byte [esp + 0x198], 0x18
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x1a4], 0x19
call fcn.004020b0
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4120cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
push 0
push ecx
lea ecx, [esp + 0xe4]
call fcn.004441d7
test eax, eax
je 0x41279b
jmp 0x4120f0
lea ecx, [esp + 0xdc]
call fcn.00443e49
lea ecx, [esp + 0xdc]
mov dword [esp + 0x7c], eax
call fcn.00444112
test eax, eax
jne 0x412790
mov edx, dword [esp + 0xdc]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0xe0]
call eax
test eax, eax
je 0x412790
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0xe0]
call fcn.00444376
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x190], 0x1a
call fcn.00401ff0
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x18
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x412182
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x1a4], 0x1b
call fcn.004020b0
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4121db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3c]
push 0
push ecx
lea ecx, [esp + 0x15c]
call fcn.004441d7
test eax, eax
je 0x41237f
jmp 0x412200
lea ecx, [esp + 0x154]
call fcn.00443e49
mov dword [esp + 0x28], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0x158]
mov byte [esp + 0x190], 0x1c
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x18c], 0x1d
je 0x4122af
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41229d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41229d
push eax
call fcn.00401ba0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x412294
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x4122af
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00401de0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x1c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4122da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x474]
mov esi, dword [edx + eax*4]
lea ebp, [edx + eax*4]
add eax, 1
lea ebx, [edi - 0x10]
sub esi, 0x10
cmp ebx, esi
mov dword [esp + 0x20], eax
je 0x412343
cmp dword [esi + 0xc], 0
jl 0x412337
mov eax, dword [ebx]
cmp eax, dword [esi]
jne 0x412337
push ebx
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41232f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp], edi
jmp 0x412343
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebp
call fcn.00401de0
mov eax, dword [esp + 0x24]
add dword [eax + 0x480], 1
mov byte [esp + 0x18c], 0x18
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41236f
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
cmp dword [esp + 0x28], 0
jne 0x412200
jmp 0x412790
lea ecx, [esp + 0x124]
call fcn.0044414b
lea ecx, [esp + 0x13c]
mov byte [esp + 0x18c], 0x1e
call fcn.0044414b
mov byte [esp + 0x18c], 0x1f
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x44], eax
mov byte [esp + 0x18c], 0x20
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
push str..
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0xbc]
push edx
mov byte [esp + 0x198], 0x21
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x1a4], 0x22
call fcn.004020b0
mov eax, dword [esp + 0xcc]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 0x21
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41245e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
push 0
push ecx
lea ecx, [esp + 0x12c]
call fcn.004441d7
test eax, eax
je 0x412718
lea esp, [esp]
lea ecx, [esp + 0x124]
call fcn.00443e49
lea ecx, [esp + 0x124]
mov dword [esp + 0x78], eax
call fcn.00444112
test eax, eax
jne 0x41270d
mov edx, dword [esp + 0x124]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0x128]
call eax
test eax, eax
je 0x41270d
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x128]
call fcn.00444376
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x190], 0x23
call fcn.00401ff0
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x21
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x412512
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0xb8]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x1a4], 0x24
call fcn.004020b0
mov eax, dword [esp + 0xc8]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 0x21
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412571
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
push 0
push ecx
lea ecx, [esp + 0x144]
call fcn.004441d7
test eax, eax
je 0x41270d
lea ecx, [esp + 0x13c]
call fcn.00443e49
mov dword [esp + 0xa8], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x140]
mov byte [esp + 0x190], 0x25
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x18c], 0x26
je 0x41263e
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41262c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41262c
push eax
call fcn.00401ba0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x412623
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x41263e
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00401de0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x25
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412669
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x474]
mov esi, dword [edx + eax*4]
lea ebx, [edx + eax*4]
add eax, 1
lea ebp, [edi - 0x10]
sub esi, 0x10
cmp ebp, esi
mov dword [esp + 0x20], eax
je 0x4126d2
cmp dword [esi + 0xc], 0
jl 0x4126c6
mov eax, dword [ebp]
cmp eax, dword [esi]
jne 0x4126c6
push ebp
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4126bf
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebx], edi
jmp 0x4126d2
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebx
call fcn.00401de0
mov eax, dword [esp + 0x24]
add dword [eax + 0x480], 1
mov byte [esp + 0x18c], 0x21
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4126ff
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
cmp dword [esp + 0xa8], 0
jne 0x41258c
cmp dword [esp + 0x78], 0
jne 0x412480
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x20
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412740
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x1f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412768
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x13c]
mov byte [esp + 0x18c], 0x1e
call fcn.0044416f
lea ecx, [esp + 0x124]
mov byte [esp + 0x18c], 0x18
call fcn.0044416f
cmp dword [esp + 0x7c], 0
jne 0x4120f0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x17
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4127c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x16
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4127eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x154]
mov byte [esp + 0x18c], 0x15
call fcn.0044416f
lea ecx, [esp + 0xdc]
mov byte [esp + 0x18c], 0xf
call fcn.0044416f
cmp dword [esp + 0x4c], 0
jne 0x411d60
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0xe
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412846
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41286e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x16c]
mov byte [esp + 0x18c], 0xc
call fcn.0044416f
lea ecx, [esp + 0x10c]
mov byte [esp + 0x18c], 5
call fcn.0044416f
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0xc8]
call fcn.00444406
mov edx, dword [esp + 0x18]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
mov byte [esp + 0x18c], 0x27
jge 0x4128d5
push esi
lea ecx, [esp + 0x1c]
call fcn.00401b50
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
push eax
push edx
call fcn.0044dc09
push eax
call fcn.00403290
add esp, 0xc
test esi, esi
jl 0x412b8d
mov eax, dword [esp + 0x18]
cmp esi, dword [eax - 8]
jg 0x412b8d
mov dword [eax - 0xc], esi
mov ecx, dword [esp + 0x18]
mov byte [esi + ecx], 0
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
jl 0x412b2a
push 0x46e964
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x412b26
mov ecx, dword [esp + 0x18]
sub eax, ecx
cmp eax, 0xffffffff
je 0x412b2a
push str..inf
lea edx, [esp + 0x198]
push edx
lea eax, [esp + 0x68]
push eax
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea ecx, [esp + 0x64]
push ecx
mov byte [esp + 0x1a4], 0x28
call fcn.004020b0
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x18c], 0x27
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x412997
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
push 0
push ecx
lea ecx, [esp + 0xfc]
call fcn.004441d7
test eax, eax
je 0x412b26
lea ecx, [esp + 0xf4]
call fcn.00443e49
mov dword [esp + 0x4c], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x411884
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0xf8]
mov byte [esp + 0x190], 0x29
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x18c], 0x2a
je 0x412a5e
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x412a4c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x412a4c
push eax
call fcn.00401ba0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x412a43
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x412a5e
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00401de0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412a86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x474]
mov esi, dword [edx + eax*4]
lea ebp, [edx + eax*4]
add eax, 1
lea ebx, [edi - 0x10]
sub esi, 0x10
cmp ebx, esi
mov dword [esp + 0x20], eax
je 0x412aef
cmp dword [esi + 0xc], 0
jl 0x412ae3
mov eax, dword [ebx]
cmp eax, dword [esi]
jne 0x412ae3
push ebx
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412adb
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp], edi
jmp 0x412aef
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebp
call fcn.00401de0
mov eax, dword [esp + 0x24]
add dword [eax + 0x480], 1
mov byte [esp + 0x18c], 0x27
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412b1b
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
cmp dword [esp + 0x4c], 0
jne 0x4129b2
mov ecx, dword [esp + 0x18]
lea eax, [ecx - 0x10]
mov byte [esp + 0x18c], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412b4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x70], 0
jne 0x4119f2
mov edi, dword [esp + 0x24]
xor ebp, ebp
lea ecx, [esp + 0x90]
call fcn.0044340f
mov byte [esp + 0x18c], 0x2b
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x412b97
push 0x80004005
call fcn.00401000
push 0x80070057
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x18c], 0x2c
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x412bc9
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xc0], eax
push 0x194
mov byte [esp + 0x190], 0x2d
call fcn.004392c2
add esp, 4
cmp eax, ebp
je 0x412c14
push fcn.00401ad0
push fcn.00401c70
push 0x64
lea esi, [eax + 4]
push 4
push esi
mov dword [eax], 0x64
call fcn.0044da8b
jmp 0x412c16
xor esi, esi
push 0x46e948
lea ecx, [esp + 0x3c]
mov dword [edi + 0x478], esi
call fcn.00403950
mov byte [esp + 0x18c], 0x2e
mov dword [edi + 0x47c], ebp
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x412c52
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x18c], 0x2f
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x412c84
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x18c], 0x30
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x412cb6
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x18c], 0x31
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x412ce8
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0x18c], 0x32
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x412d1a
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
cmp dword [edi + 0x480], ebp
mov byte [esp + 0x18c], 0x33
mov dword [esp + 0x48], ebp
mov dword [esp + 0x34], ebp
jle 0x414002
mov esi, dword [esp + 0x24]
mov edi, ebp
mov ecx, dword [esi + 0x474]
push 0
lea eax, [edi*4]
mov eax, dword [eax + ecx]
push 0x4000
push eax
lea ecx, [esp + 0x9c]
call fcn.00443425
push 0x46c2df
lea ecx, [esp + 0x18]
call fcn.00403950
push 0x46e94c
lea ecx, [esp + 0x48]
mov byte [esp + 0x190], 0x34
call fcn.00403950
push 0x46e94c
lea ecx, [esp + 0x44]
mov byte [esp + 0x190], 0x35
call fcn.00403950
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x94]
mov byte [esp + 0x190], 0x36
call fcn.0044396c
test eax, eax
je 0x413e9f
mov edx, dword [esp + 0x14]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
add dword [esp + 0x48], ecx
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x412df5
push esi
lea ecx, [esp + 0x18]
call fcn.00401b50
mov edx, dword [esp + 0x14]
lea eax, [esi + 1]
push eax
push edx
call fcn.0044dc09
push eax
call fcn.00403290
add esp, 0xc
test esi, esi
jl 0x412b8d
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x412b8d
mov dword [eax - 0xc], esi
mov ecx, dword [esp + 0x14]
mov byte [ecx + esi], 0
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x413e86
push str.xerox
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413e86
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x413e86
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
je 0x413e86
mov edx, dword [esp + 0x14]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x412e98
push esi
lea ecx, [esp + 0x18]
call fcn.00401b50
mov edx, dword [esp + 0x14]
lea eax, [esi + 1]
push eax
push edx
call fcn.0044dc09
push eax
call fcn.00403290
add esp, 0xc
test esi, esi
jl 0x412b8d
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x412b8d
mov dword [eax - 0xc], esi
mov ecx, dword [esp + 0x14]
mov byte [ecx + esi], 0
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x413e6d
push str._manufacturer_
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413e6d
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x413e6d
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
je 0x413453
push 1
push 0
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x20]
call fcn.00404d70
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
cmp ecx, 1
jne 0x412f42
test ecx, ecx
jl 0x412b8d
cmp byte [eax], 0x3b
jne 0x412f42
mov bl, cl
jmp 0x412f44
xor bl, bl
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412f64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x412f82
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x412f15
jmp 0x413453
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jle 0x413453
push 0x3d
push eax
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x413453
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0xffffffff
je 0x413453
cmp dword [ecx - 0xc], 0
jg 0x412fbd
or ebx, 0xffffffff
jmp 0x412fd7
push 0x3d
push ecx
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x412fd1
or ebx, 0xffffffff
jmp 0x412fd7
sub eax, dword [esp + 0x14]
mov ebx, eax
push 0x64
lea edx, [ebx + 1]
push edx
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x20]
call fcn.00404d70
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
mov byte [esp + 0x18c], 0x37
je 0x41304a
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41303c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41303c
push eax
call fcn.00401ba0
mov ebp, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x413033
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebp, 0x10
mov dword [esp + 0x20], ebp
jmp 0x41304a
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00401de0
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413072
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x46c2df
push 0x46ba90
lea ecx, [esp + 0x28]
call fcn.00404b00
mov esi, dword [esp + 0x20]
cmp dword [esi - 0xc], 0
jle 0x4133d7
push 0x2c
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x4133d7
sub eax, esi
cmp eax, 0xffffffff
je 0x4133d7
cmp dword [esi - 0xc], 0
jg 0x4130bc
or esi, 0xffffffff
jmp 0x4130d4
push 0x2c
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x4130d0
or esi, 0xffffffff
jmp 0x4130d4
sub eax, esi
mov esi, eax
push esi
push 0
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00404d70
mov edx, dword [eax]
push edx
lea eax, [esp + 0x20]
push str.__s_
push eax
mov byte [esp + 0x198], 0x38
call fcn.004020b0
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41312a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x64
lea ebp, [esi + 1]
push ebp
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00404d70
mov edx, dword [eax]
push edx
lea eax, [esp + 0x2c]
push 0x46d5a0
push eax
mov byte [esp + 0x198], 0x39
call fcn.004020b0
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413183
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x28]
cmp dword [edi - 0xc], 0
jle 0x41332c
push 0x2c
push edi
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x41332c
sub eax, edi
cmp eax, 0xffffffff
je 0x41332c
cmp dword [edi - 0xc], 0
jg 0x4131ba
or ebp, 0xffffffff
jmp 0x4131d2
push 0x2c
push edi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x4131ce
or ebp, 0xffffffff
jmp 0x4131d2
sub eax, edi
mov ebp, eax
push ebp
push 0
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x34]
call fcn.00404d70
mov edi, eax
push esi
push 0
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x198], 0x3a
call fcn.00404d70
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x34]
push str.__s._s_
push eax
mov byte [esp + 0x19c], 0x3b
call fcn.004020b0
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x18c], 0x3a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41324f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413277
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x64
add ebp, 1
push ebp
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x34]
call fcn.00404d70
mov ebp, eax
push esi
push 0
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x198], 0x3c
call fcn.00404d70
mov ecx, dword [ebp]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x44]
push str.__s._s_
push eax
mov byte [esp + 0x19c], 0x3d
call fcn.004020b0
mov eax, dword [esp + 0xb8]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x18c], 0x3c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4132f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413453
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x413453
push 0x64
push ebp
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00404d70
mov ebp, eax
push esi
push 0
lea edx, [esp + 0xb8]
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x198], 0x3e
call fcn.00404d70
mov ecx, dword [ebp]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x34]
push str.__s._s_
push eax
mov byte [esp + 0x19c], 0x3f
call fcn.004020b0
mov eax, dword [esp + 0xc0]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x18c], 0x3e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4133aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413443
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x413443
push ebx
push 0
lea ecx, [esp + 0xbc]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00404d70
mov edx, dword [eax]
push edx
lea eax, [esp + 0x20]
push str.__s_
push eax
mov byte [esp + 0x198], 0x40
call fcn.004020b0
mov eax, dword [esp + 0xc0]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413433
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x10
push str.there_is_nothing
lea ecx, [esp + 0x34]
call fcn.00401de0
push 0x10
push str.there_is_nothing
lea ecx, [esp + 0x44]
call fcn.00401de0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
je 0x413e6d
lea esp, [esp]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41349d
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x4134a1
push eax
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x41349d
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0xffffffff
jne 0x4134fd
jmp 0x4134a1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4134c8
cmp dword [ecx - 0xc], 0
jl 0x4134c8
push eax
push ecx
call fcn.0044c647
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x4134c8
sub eax, ecx
cmp eax, 0xffffffff
jne 0x4134fd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x413e54
cmp dword [ecx - 0xc], 0
jl 0x413e54
push eax
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413e54
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x413e54
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
je 0x413e54
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x413566
push 0x46e8ec
push ecx
call fcn.0044c647
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x413541
sub eax, ecx
cmp eax, 0xffffffff
jne 0x4138f4
cmp dword [ecx - 0xc], 0
jl 0x413566
push 0x46e8e8
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413566
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
jne 0x4138f4
push 2
push 0x46e8e4
lea ecx, [esp + 0x4c]
call fcn.00401de0
push 0xc8
push 1
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x20]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x190], 0x46
call fcn.00401ff0
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4135cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
cmp dword [esi - 0xc], 0
jle 0x413669
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x413665
sub eax, esi
je 0x413665
cmp eax, 0xffffffff
je 0x413665
push 2
push 0x46e8e4
lea ecx, [esp + 0x48]
call fcn.00401de0
mov ecx, dword [esp + 0x38]
push 0x46e948
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x413e3b
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0x474]
mov edx, dword [esi + 0x47c]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esi + 0x478]
lea ecx, [ecx + edx*4]
push eax
call fcn.00401ff0
add dword [esi + 0x47c], 1
push 3
push 0x46e960
lea ecx, [esp + 0x40]
call fcn.00401de0
jmp 0x413e3b
cmp dword [esi - 0xc], 0
jl 0x413e3b
push 0x46e8d8
push esi
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413e3b
sub eax, esi
je 0x413e3b
cmp eax, 0xffffffff
je 0x413e3b
push eax
push 0
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x24]
call fcn.00404d70
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0x190], 0x47
call fcn.0044396c
test eax, eax
mov edi, dword [esp + 0x54]
je 0x41385c
lea esp, [esp]
test edi, edi
je 0x413843
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x413843
push edi
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413843
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x413843
push 0xc8
push 0
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0x20]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x190], 0x48
call fcn.00401ff0
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x47
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41375a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
cmp dword [esi - 0xc], 0
jg 0x413769
or eax, 0xffffffff
jmp 0x41377f
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x41377d
or eax, 0xffffffff
jmp 0x41377f
sub eax, esi
push 0x64
add eax, 1
push eax
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x190], 0x49
call fcn.00401ff0
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x47
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4137cd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
cmp dword [esi - 0xc], 0
jg 0x4137dc
or eax, 0xffffffff
jmp 0x4137f2
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x4137f0
or eax, 0xffffffff
jmp 0x4137f2
sub eax, esi
push eax
push 0
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x190], 0x4a
call fcn.00401ff0
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x47
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x413843
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x4136d0
push 2
push 0x46e8e4
lea ecx, [esp + 0x48]
call fcn.00401de0
mov edx, dword [esp + 0x38]
push 0x46e948
push edx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x4138c7
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0x474]
mov edx, dword [esi + 0x478]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esi + 0x47c]
lea ecx, [edx + ecx*4]
push eax
call fcn.00401ff0
add dword [esi + 0x47c], 1
push 3
push 0x46e960
lea ecx, [esp + 0x40]
call fcn.00401de0
lea eax, [edi - 0x10]
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413e3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x413e3b
mov ecx, dword [esp + 0x44]
push 0x46e8e4
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x413e3b
cmp dword [esp + 0x2c], 0
je 0x413e9f
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x413e9f
mov edx, dword [esp + 0x2c]
push edx
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413e9f
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x413e9f
mov eax, dword [esp + 0x40]
push 0x46e8e4
push eax
call fcn.0044ca53
add esp, 8
test eax, eax
setne al
test al, al
je 0x413e9f
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
je 0x413e3b
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x4139df
push 0x46e8ec
push ecx
call fcn.0044c647
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x4139ba
sub eax, ecx
cmp eax, 0xffffffff
jne 0x413dfb
cmp dword [ecx - 0xc], 0
jl 0x4139df
push 0x46e8e8
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x4139df
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
jne 0x413dfb
push 2
push 0x46e8e4
lea ecx, [esp + 0x4c]
call fcn.00401de0
push 0xc8
push 1
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x20]
call fcn.00404d70
mov eax, dword [eax]
lea esi, [eax - 0x10]
lea ebp, [ebx - 0x10]
cmp esi, ebp
mov byte [esp + 0x18c], 0x41
je 0x413abd
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x413aab
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x413aab
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x413a51
cmp eax, dword [esi]
jne 0x413a51
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x413a87
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x414243
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
add eax, 1
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0044caab
add esp, 0x10
or edx, 0xffffffff
lock xadd dword [ebx], edx
dec edx
test edx, edx
jg 0x413a9e
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
lea ebx, [edi + 0x10]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x18], ebx
jmp 0x413abd
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00401de0
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413ae5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx - 0xc], 0
jle 0x413b7b
push 0x22
push ebx
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x413b77
sub eax, ebx
je 0x413b77
cmp eax, 0xffffffff
je 0x413b77
push 2
push 0x46e8e4
lea ecx, [esp + 0x48]
call fcn.00401de0
mov ecx, dword [esp + 0x38]
push 0x46e948
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x413e22
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x474]
mov edx, dword [edi + 0x47c]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [edi + 0x478]
lea ecx, [ecx + edx*4]
push eax
call fcn.00401ff0
add dword [edi + 0x47c], 1
push 3
push 0x46e960
lea ecx, [esp + 0x40]
call fcn.00401de0
jmp 0x413e22
cmp dword [ebx - 0xc], 0
jl 0x413e22
push 0x46e8d8
push ebx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413e22
sub eax, ebx
je 0x413e22
cmp eax, 0xffffffff
je 0x413e22
push eax
push 0
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x24]
call fcn.00404d70
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0x190], 0x42
call fcn.0044396c
test eax, eax
mov ebp, dword [esp + 0x84]
je 0x413d6e
test ebp, ebp
je 0x413d55
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x413d55
push ebp
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x413d55
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x413d55
push 0xc8
push 0
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x20]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x190], 0x43
call fcn.00401ff0
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x42
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x413c68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
cmp dword [esi - 0xc], 0
jg 0x413c77
or eax, 0xffffffff
jmp 0x413c8d
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x413c8b
or eax, 0xffffffff
jmp 0x413c8d
sub eax, esi
push 0x64
add eax, 1
push eax
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x190], 0x44
call fcn.00401ff0
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x42
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x413cdb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
cmp dword [esi - 0xc], 0
jg 0x413cea
or eax, 0xffffffff
jmp 0x413d00
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x413cfe
or eax, 0xffffffff
jmp 0x413d00
sub eax, esi
push eax
push 0
lea ecx, [esp + 0xc0]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x190], 0x45
call fcn.00401ff0
mov eax, dword [esp + 0xb8]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x42
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x413d51
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x413be4
push 2
push 0x46e8e4
lea ecx, [esp + 0x48]
call fcn.00401de0
mov edx, dword [esp + 0x38]
push 0x46e948
push edx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x413dd5
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + 0x474]
mov edx, dword [edi + 0x478]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [edi + 0x47c]
lea ecx, [edx + ecx*4]
push eax
call fcn.00401ff0
add dword [edi + 0x47c], 1
push 3
push 0x46e960
lea ecx, [esp + 0x40]
call fcn.00401de0
lea eax, [ebp - 0x10]
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413e22
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x413e22
mov ecx, dword [esp + 0x44]
push 0x46e8e4
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
jne 0x413e9f
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x41398f
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x413516
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x413470
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x412e72
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x94]
call fcn.0044396c
test eax, eax
jne 0x412dcb
lea ecx, [esp + 0x90]
call fcn.004437d5
mov ecx, dword [esp + 0x38]
push 0x46e948
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x413f44
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
mov edx, dword [esi + 0x474]
lea eax, [edi*4]
add edx, eax
push str.false_driver
push edx
lea eax, [esp + 0xc4]
push eax
call fcn.004020d0
add esp, 0xc
mov ecx, dword [esi + 0x47c]
mov edx, dword [esi + 0x478]
lea ecx, [edx + ecx*4]
push eax
mov byte [esp + 0x190], 0x4b
call fcn.00401ff0
mov eax, dword [esp + 0xbc]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413f3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add dword [esi + 0x47c], 1
jmp 0x413f5c
push 3
push 0x46e948
lea ecx, [esp + 0x40]
call fcn.00401de0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0x1c]
call fcn.00401af0
lea ecx, [esp + 0x2c]
call fcn.00401af0
lea ecx, [esp + 0x3c]
call fcn.00401af0
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x35
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413f9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413fc7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x33
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413fef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 1
cmp edi, dword [esi + 0x480]
mov dword [esp + 0x34], edi
jl 0x412d4c
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x32
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41402a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x31
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414052
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x30
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41407a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x2f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4140a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x2e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4140ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x2d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4140f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xc0]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x2c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41411d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0x2b
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414145
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x18c], 5
call fcn.00443839
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414181
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4141a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xf4]
mov byte [esp + 0x18c], 2
call fcn.0044416f
lea ecx, [esp + 0xc4]
mov byte [esp + 0x18c], 1
call fcn.0044416f
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x18c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4141f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x194]
add eax, 0xfffffff0
mov dword [esp + 0x18c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414227
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x184]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17c
ret 4
call fcn.00401190
int3