Function at 0x4147e0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x465621
mov eax, dword fs:[0]
push eax
sub esp, 0x234
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4844a0]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x15c], edi
lea eax, [esp + 0x5c]
push eax
call fcn.004145d0
add edi, 0x350
xor ebp, ebp
push eax
mov ecx, edi
mov dword [esp + 0x254], ebp
call fcn.00401ff0
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
mov dword [esp + 0x250], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414862
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x194
call fcn.004392c2
add esp, 4
cmp eax, ebp
je 0x414896
push fcn.00401ad0
push fcn.00401c70
push 0x64
lea esi, [eax + 4]
push 4
push esi
mov dword [eax], 0x64
call fcn.0044da8b
mov dword [esp + 0x58], esi
jmp 0x41489a
mov dword [esp + 0x58], ebp
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4148b4
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 + 0x44], eax
lea ecx, [esp + 0x1d0]
mov dword [esp + 0x250], 1
call fcn.0044414b
lea ecx, [esp + 0x230]
mov byte [esp + 0x250], 2
call fcn.0044414b
mov byte [esp + 0x250], 3
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x414911
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 + 0x5c], eax
mov byte [esp + 0x250], 4
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x414943
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 + 0xa8], eax
push str.Drivers
lea ecx, [esp + 0x58]
push edi
push ecx
mov byte [esp + 0x25c], 5
mov dword [esp + 0x28], ebp
mov dword [esp + 0x26c], ebp
call fcn.004020d0
push 0x5c
push eax
lea edx, [esp + 0x64]
push edx
mov byte [esp + 0x268], 6
call fcn.00404fe0
push 0x46e97c
push eax
lea eax, [esp + 0x4c]
mov bl, 7
push eax
mov byte [esp + 0x274], bl
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea ecx, [esp + 0x88]
push ecx
mov byte [esp + 0x280], 8
call fcn.004020b0
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4149ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
mov byte [esp + 0x250], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414a16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov byte [esp + 0x250], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414a3e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x5c]
push ebp
push ecx
lea ecx, [esp + 0x1d8]
call fcn.004441d7
cmp eax, ebp
je 0x41590d
jmp 0x414a60
lea ecx, [esp + 0x1d0]
call fcn.00443e49
lea ecx, [esp + 0x1d0]
mov dword [esp + 0x90], eax
call fcn.00444112
test eax, eax
jne 0x4158fd
mov edx, dword [esp + 0x1d0]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0x1d4]
call eax
test eax, eax
je 0x4158fd
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x1d4]
call fcn.00444376
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x254], 9
call fcn.00401ff0
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
mov byte [esp + 0x250], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414aef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0xbc]
push eax
mov byte [esp + 0x268], 0xa
call fcn.004020b0
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x250], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414b4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0xa8]
push 0
push ecx
lea ecx, [esp + 0x238]
call fcn.004441d7
test eax, eax
je 0x414cf0
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
lea ecx, [edx + eax*4]
mov dword [esp + 0x2c], ecx
jmp 0x414b80
lea ecx, [esp + 0x230]
call fcn.00443e49
mov dword [esp + 0x30], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x24], edi
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x234]
mov byte [esp + 0x254], 0xb
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x250], 0xc
je 0x414c2c
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x414c1a
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x414c1a
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 0x414c11
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x24], edi
jmp 0x414c2c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401de0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414c54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], 1
mov ebp, eax
mov esi, dword [ebp]
add eax, 4
lea ebx, [edi - 0x10]
sub esi, 0x10
cmp ebx, esi
mov dword [esp + 0x2c], eax
je 0x414cb7
cmp dword [esi + 0xc], 0
jl 0x414cab
mov ecx, dword [ebx]
cmp ecx, dword [esi]
jne 0x414cab
push ebx
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x414ca3
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add edi, 0x10
mov dword [ebp], edi
jmp 0x414cb7
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebp
call fcn.00401de0
add dword [esp + 0x260], 1
mov byte [esp + 0x250], 5
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x414ce0
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
cmp dword [esp + 0x30], 0
jne 0x414b80
jmp 0x4158fd
lea ecx, [esp + 0x1a0]
call fcn.0044414b
lea ecx, [esp + 0x200]
mov byte [esp + 0x250], 0xd
call fcn.0044414b
mov byte [esp + 0x250], 0xe
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
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 + 0x250], 0xf
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
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 + 0x48]
push ecx
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x25c], 0x10
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x268], 0x11
call fcn.004020b0
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x250], 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414dc9
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 + 0x1a8]
call fcn.004441d7
test eax, eax
je 0x415885
lea ecx, [esp + 0x1a0]
call fcn.00443e49
lea ecx, [esp + 0x1a0]
mov dword [esp + 0x88], eax
call fcn.00444112
test eax, eax
jne 0x415877
mov edx, dword [esp + 0x1a0]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0x1a4]
call eax
test eax, eax
je 0x415877
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x1a4]
call fcn.00444376
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x254], 0x12
call fcn.00401ff0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414e73
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x268], 0x13
call fcn.004020b0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x250], 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414ecc
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 + 0x208]
call fcn.004441d7
test eax, eax
je 0x415070
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
lea ecx, [edx + eax*4]
mov dword [esp + 0x2c], ecx
jmp 0x414f00
lea ecx, [esp + 0x200]
call fcn.00443e49
mov dword [esp + 0x30], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x24], edi
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x204]
mov byte [esp + 0x254], 0x14
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x250], 0x15
je 0x414fac
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x414f9a
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x414f9a
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 0x414f91
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x24], edi
jmp 0x414fac
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401de0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414fd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], 1
mov ebp, eax
mov esi, dword [ebp]
add eax, 4
lea ebx, [edi - 0x10]
sub esi, 0x10
cmp ebx, esi
mov dword [esp + 0x2c], eax
je 0x415037
cmp dword [esi + 0xc], 0
jl 0x41502b
mov ecx, dword [ebx]
cmp ecx, dword [esi]
jne 0x41502b
push ebx
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x415023
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add edi, 0x10
mov dword [ebp], edi
jmp 0x415037
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebp
call fcn.00401de0
add dword [esp + 0x260], 1
mov byte [esp + 0x250], 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415060
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
cmp dword [esp + 0x30], 0
jne 0x414f00
jmp 0x415877
lea ecx, [esp + 0x1b8]
call fcn.0044414b
lea ecx, [esp + 0x218]
mov byte [esp + 0x250], 0x16
call fcn.0044414b
mov byte [esp + 0x250], 0x17
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
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 + 0x250], 0x18
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x4c], eax
push str..
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x94]
push edx
mov byte [esp + 0x25c], 0x19
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x268], 0x1a
call fcn.004020b0
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x250], 0x19
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41514f
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 + 0x1c0]
call fcn.004441d7
test eax, eax
je 0x4157ff
lea ebx, [ebx]
lea ecx, [esp + 0x1b8]
call fcn.00443e49
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x80], eax
call fcn.00444112
test eax, eax
jne 0x4157f1
mov edx, dword [esp + 0x1b8]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0x1bc]
call eax
test eax, eax
je 0x4157f1
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x1bc]
call fcn.00444376
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x254], 0x1b
call fcn.00401ff0
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x19
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4151ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x60]
push eax
mov byte [esp + 0x268], 0x1c
call fcn.004020b0
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x250], 0x19
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41525e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x4c]
push 0
push ecx
lea ecx, [esp + 0x220]
call fcn.004441d7
test eax, eax
je 0x415400
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
lea ecx, [edx + eax*4]
mov dword [esp + 0x2c], ecx
jmp 0x415290
lea ecx, [esp + 0x218]
call fcn.00443e49
mov dword [esp + 0x30], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x24], edi
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x21c]
mov byte [esp + 0x254], 0x1d
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x250], 0x1e
je 0x41533c
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41532a
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41532a
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 0x415321
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x24], edi
jmp 0x41533c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401de0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415364
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], 1
mov ebp, eax
mov esi, dword [ebp]
add eax, 4
lea ebx, [edi - 0x10]
sub esi, 0x10
cmp ebx, esi
mov dword [esp + 0x2c], eax
je 0x4153c7
cmp dword [esi + 0xc], 0
jl 0x4153bb
mov ecx, dword [ebx]
cmp ecx, dword [esi]
jne 0x4153bb
push ebx
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x4153b3
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add edi, 0x10
mov dword [ebp], edi
jmp 0x4153c7
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebp
call fcn.00401de0
add dword [esp + 0x260], 1
mov byte [esp + 0x250], 0x19
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4153f0
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
cmp dword [esp + 0x30], 0
jne 0x415290
jmp 0x4157f1
lea ecx, [esp + 0x188]
call fcn.0044414b
lea ecx, [esp + 0x1e8]
mov byte [esp + 0x250], 0x1f
call fcn.0044414b
mov byte [esp + 0x250], 0x20
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x48], eax
mov byte [esp + 0x250], 0x21
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
push str..
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x68]
push edx
mov byte [esp + 0x25c], 0x22
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x268], 0x23
call fcn.004020b0
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x250], 0x22
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4154d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x48]
push 0
push ecx
lea ecx, [esp + 0x190]
call fcn.004441d7
test eax, eax
je 0x415779
lea ecx, [esp + 0x188]
call fcn.00443e49
lea ecx, [esp + 0x188]
mov dword [esp + 0x78], eax
call fcn.00444112
test eax, eax
jne 0x41576e
mov edx, dword [esp + 0x188]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0x18c]
call eax
test eax, eax
je 0x41576e
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x18c]
call fcn.00444376
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x254], 0x24
call fcn.00401ff0
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x22
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415580
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..inf
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x6c]
push edx
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x268], 0x25
call fcn.004020b0
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x250], 0x22
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4155d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x30]
push 0
push ecx
lea ecx, [esp + 0x1f0]
call fcn.004441d7
test eax, eax
je 0x41576e
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
lea ecx, [edx + eax*4]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x1e8]
call fcn.00443e49
mov dword [esp + 0x70], eax
call fcn.004416d9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4148aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x24], edi
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x254], 0x26
call fcn.00444376
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
mov byte [esp + 0x250], 0x27
je 0x4156af
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41569d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41569d
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 0x415694
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x24], edi
jmp 0x4156af
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401de0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x26
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4156d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], 1
mov ebx, eax
mov esi, dword [ebx]
add eax, 4
lea ebp, [edi - 0x10]
sub esi, 0x10
cmp ebp, esi
mov dword [esp + 0x2c], eax
je 0x415739
cmp dword [esi + 0xc], 0
jl 0x41572d
mov ecx, dword [ebp]
cmp ecx, dword [esi]
jne 0x41572d
push ebp
call fcn.00401ba0
mov edi, eax
add esp, 4
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x415726
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add edi, 0x10
mov dword [ebx], edi
jmp 0x415739
mov eax, dword [edi - 0xc]
push eax
push edi
mov ecx, ebx
call fcn.00401de0
add dword [esp + 0x260], 1
mov byte [esp + 0x250], 0x22
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415763
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
cmp dword [esp + 0x70], 0
jne 0x415603
cmp dword [esp + 0x78], 0
jne 0x4154f4
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x21
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4157a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x20
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4157c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1e8]
mov byte [esp + 0x250], 0x1f
call fcn.0044416f
lea ecx, [esp + 0x188]
mov byte [esp + 0x250], 0x19
call fcn.0044416f
cmp dword [esp + 0x80], 0
jne 0x415170
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415827
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 + 0x250], 0x17
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41584f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x218]
mov byte [esp + 0x250], 0x16
call fcn.0044416f
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x250], 0x10
call fcn.0044416f
cmp dword [esp + 0x88], 0
jne 0x414de4
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4158ad
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 + 0x250], 0xe
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4158d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x200]
mov byte [esp + 0x250], 0xd
call fcn.0044416f
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x250], 5
call fcn.0044416f
cmp dword [esp + 0x90], 0
jne 0x414a60
xor ebp, ebp
push 0x4b4
call fcn.004392c2
add esp, 4
cmp eax, ebp
je 0x415947
push fcn.00401ad0
push fcn.00401c70
push 0x12c
lea esi, [eax + 4]
push 4
push esi
mov dword [eax], 0x12c
call fcn.0044da8b
mov dword [esp + 0x258], esi
jmp 0x41594e
mov dword [esp + 0x258], ebp
push 0x4b4
call fcn.004392c2
add esp, 4
cmp eax, ebp
je 0x415988
push fcn.00401ad0
push fcn.00401c70
push 0x12c
lea esi, [eax + 4]
push 4
push esi
mov dword [eax], 0x12c
call fcn.0044da8b
mov dword [esp + 0x25c], esi
jmp 0x41598f
mov dword [esp + 0x25c], ebp
lea ecx, [esp + 0x94]
call fcn.0044340f
mov byte [esp + 0x250], 0x28
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4159bd
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 + 0x18], eax
mov byte [esp + 0x250], 0x29
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4159ef
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 + 0x250], 0x2a
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x415a21
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 + 0x250], 0x2b
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x415a53
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
mov byte [esp + 0x250], 0x2c
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x415a85
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 + 0x34], eax
mov byte [esp + 0x250], 0x2d
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x415ab7
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 + 0x48], eax
mov byte [esp + 0x250], 0x2e
call fcn.004416d9
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x415ae9
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 + 0x24], eax
cmp dword [esp + 0x260], ebp
mov byte [esp + 0x250], 0x2f
mov dword [esp + 0x28], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x2c], ebp
jle 0x417e79
mov edi, ebp
mov ecx, dword [esp + 0x58]
lea eax, [ecx + edi*4]
push 0
mov dword [esp + 0x44], eax
mov eax, dword [eax]
push 0x4000
push eax
lea ecx, [esp + 0xa0]
call fcn.00443425
push 0x46c2df
lea ecx, [esp + 0x18]
call fcn.00403950
push 0x46e94c
lea ecx, [esp + 0x50]
mov byte [esp + 0x254], 0x30
call fcn.00403950
push 0x46e94c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x254], 0x31
call fcn.00403950
push 0x46d508
lea ecx, [esp + 0x24]
mov byte [esp + 0x254], 0x32
call fcn.00403950
push 0x46e948
lea ecx, [esp + 0x54]
mov byte [esp + 0x254], 0x33
call fcn.00403950
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x98]
mov byte [esp + 0x254], 0x34
call fcn.0044396c
test eax, eax
je 0x417cf0
mov edx, dword [esp + 0x14]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
add dword [esp + 0x54], ecx
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x415bee
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 0x4180a4
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x4180a4
mov dword [eax - 0xc], esi
mov ecx, dword [esp + 0x14]
mov byte [esi + ecx], 0
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x417cd7
push str.xerox
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x417cd7
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x417cd7
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
je 0x417cd7
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 0x415c91
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 0x4180a4
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x4180a4
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 0x415de8
push str.driverver
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x415de8
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x415de8
push 0x1e
push 0x15
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x20]
call fcn.00404d70
mov eax, dword [eax]
mov ebp, dword [esp + 0x20]
lea esi, [eax - 0x10]
add ebp, 0xfffffff0
cmp esi, ebp
mov byte [esp + 0x250], 0x35
je 0x415dbb
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x415dad
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x415dad
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x415d57
cmp eax, dword [esi]
jne 0x415d57
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x415d8d
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 0x41809f
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 0x415da4
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
add edi, 0x10
mov dword [esp + 0x20], edi
jmp 0x415dbb
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00401de0
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415e1a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x415e1a
cmp dword [esp + 0x54], 0xe
jne 0x415e1a
mov ecx, dword [esp + 0x20]
push 0x46d508
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x415e1a
push 1
push 0x46d508
lea ecx, [esp + 0x28]
call fcn.00401de0
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x417cbe
push str._manufacturer_
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x417cbe
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x417cbe
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
je 0x4165d1
push 1
push 0
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x20]
call fcn.00404d70
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
cmp ecx, 1
jne 0x415e94
test ecx, ecx
jl 0x4180a4
cmp byte [eax], 0x3b
jne 0x415e94
mov bl, cl
jmp 0x415e96
xor bl, bl
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415eb9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x415ee1
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jle 0x415ee1
push 0x3d
push eax
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x415ee1
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0xffffffff
jne 0x415eff
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
jne 0x415e64
jmp 0x4165d1
mov esi, dword [ecx - 0xc]
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, esi
or eax, edx
jge 0x415f21
push esi
lea ecx, [esp + 0x18]
call fcn.00401b50
mov ecx, dword [esp + 0x14]
lea edx, [esi + 1]
push edx
push ecx
call fcn.0044dc09
push eax
call fcn.00403290
add esp, 0xc
test esi, esi
jl 0x4180a4
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x4180a4
mov dword [eax - 0xc], esi
mov eax, dword [esp + 0x14]
mov byte [esi + eax], 0
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x4165d1
push str.ntamd64
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x41605a
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0xffffffff
je 0x41605e
mov ecx, dword [esp + 0x50]
push 0x46e948
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x41605a
push str.__64_bit
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x88]
push eax
call fcn.004020d0
add esp, 0xc
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
mov byte [esp + 0x250], 0x36
je 0x41601f
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x416011
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x416011
push eax
call fcn.00401ba0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x416008
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x20], ebx
jmp 0x41601f
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00401de0
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41604a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 4
push str.once
lea ecx, [esp + 0x58]
call fcn.00401de0
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jle 0x4165d1
push 0x3d
push ecx
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x4165d1
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0xffffffff
je 0x4165d1
cmp dword [ecx - 0xc], 0
jg 0x416095
or ebx, 0xffffffff
jmp 0x4160af
push 0x3d
push ecx
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x4160a9
or ebx, 0xffffffff
jmp 0x4160af
sub eax, dword [esp + 0x14]
mov ebx, eax
push 0x64
lea ecx, [ebx + 1]
push ecx
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x20]
call fcn.00404d70
mov ecx, dword [eax]
mov esi, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
mov byte [esp + 0x250], 0x37
je 0x416125
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x416117
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x416117
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 0x41610e
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebp, 0x10
mov dword [esp + 0x1c], ebp
jmp 0x416125
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00401de0
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41614d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x46c2df
push 0x46ba90
lea ecx, [esp + 0x24]
call fcn.00404b00
mov esi, dword [esp + 0x1c]
cmp dword [esi - 0xc], 0
jle 0x416555
push 0x2c
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x416555
sub eax, esi
cmp eax, 0xffffffff
je 0x416555
cmp dword [esi - 0xc], 0
jg 0x416197
or esi, 0xffffffff
jmp 0x4161af
push 0x2c
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x4161ab
or esi, 0xffffffff
jmp 0x4161af
sub eax, esi
mov esi, eax
push esi
push 0
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x28]
call fcn.00404d70
mov edx, dword [eax]
push edx
lea eax, [esp + 0x34]
push str.__s_
push eax
mov byte [esp + 0x25c], 0x38
call fcn.004020b0
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416205
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x64
lea ebx, [esi + 1]
push ebx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x28]
call fcn.00404d70
mov edx, dword [eax]
push edx
lea eax, [esp + 0x28]
push 0x46d5a0
push eax
mov byte [esp + 0x25c], 0x39
call fcn.004020b0
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41625e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x24]
cmp dword [edi - 0xc], 0
jle 0x4163f5
push 0x2c
push edi
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x4163f5
sub eax, edi
cmp eax, 0xffffffff
je 0x4163f5
cmp dword [edi - 0xc], 0
jg 0x416295
or edi, 0xffffffff
jmp 0x4162ad
push 0x2c
push edi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x4162a9
or edi, 0xffffffff
jmp 0x4162ad
sub eax, edi
mov edi, eax
push edi
push 0
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x30]
call fcn.00404d70
mov ebp, eax
push esi
push 0
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x25c], 0x3a
call fcn.00404d70
mov ecx, dword [ebp]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x3c]
push str.__s._s_
push eax
mov byte [esp + 0x260], 0x3b
call fcn.004020b0
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x250], 0x3a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416325
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41634d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x64
add edi, 1
push edi
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x30]
call fcn.00404d70
mov edi, eax
push esi
push 0
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x25c], 0x3c
call fcn.00404d70
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x50]
push str.__s._s_
push eax
mov byte [esp + 0x260], 0x3d
call fcn.004020b0
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x250], 0x3c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4163c4
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 + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4164a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4164a7
push 0x64
push ebx
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x28]
call fcn.00404d70
mov edi, eax
push esi
push 0
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x25c], 0x3e
call fcn.00404d70
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x3c]
push str.__s._s_
push eax
mov byte [esp + 0x260], 0x3f
call fcn.004020b0
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x250], 0x3e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41646f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416497
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 + 0x50]
call fcn.00401de0
push 0x64
push ebx
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x28]
call fcn.00404d70
mov edi, eax
push esi
push 0
lea edx, [esp + 0x94]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x25c], 0x40
call fcn.00404d70
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x3c]
push str.__s._s_
push eax
mov byte [esp + 0x260], 0x41
call fcn.004020b0
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x250], 0x40
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416524
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xe8]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4165d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4165d1
push ebx
push 0
lea ecx, [esp + 0x16c]
push ecx
lea ecx, [esp + 0x28]
call fcn.00404d70
mov edx, dword [eax]
push edx
lea eax, [esp + 0x34]
push str.__s_
push eax
mov byte [esp + 0x25c], 0x42
call fcn.004020b0
mov eax, dword [esp + 0x170]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4165b1
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 + 0x3c]
call fcn.00401de0
push 0x10
push str.there_is_nothing
lea ecx, [esp + 0x50]
call fcn.00401de0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
je 0x417cbe
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x258]
lea ecx, [ecx]
lea ecx, [esp + 0x14]
call fcn.0040ecd0
test esi, esi
je 0x416632
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x416636
push esi
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x416632
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0xffffffff
jne 0x416691
jmp 0x416636
mov ecx, dword [esp + 0x14]
test edi, edi
je 0x416659
cmp dword [ecx - 0xc], 0
jl 0x416659
push edi
push ecx
call fcn.0044c647
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x416659
sub eax, ecx
cmp eax, 0xffffffff
jne 0x416691
cmp dword [esp + 0x48], 0
je 0x417ca5
cmp dword [ecx - 0xc], 0
jl 0x417ca5
mov edx, dword [esp + 0x48]
push edx
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x417ca5
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x417ca5
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
je 0x417ca5
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x4166fa
push 0x46e8ec
push ecx
call fcn.0044c647
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x4166d5
sub eax, ecx
cmp eax, 0xffffffff
jne 0x417128
cmp dword [ecx - 0xc], 0
jl 0x4166fa
push 0x46e8e8
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x4166fa
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
jne 0x417128
push 2
push 0x46e8e4
lea ecx, [esp + 0x54]
call fcn.00401de0
push 0xc8
push 1
lea ecx, [esp + 0x170]
push ecx
lea ecx, [esp + 0x20]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x5d
call fcn.00401ff0
mov eax, dword [esp + 0x168]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41675f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
cmp dword [edi - 0xc], 0
jle 0x416bb1
push 0x22
push edi
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x416bad
sub eax, edi
mov esi, eax
je 0x416bad
cmp esi, 0xffffffff
je 0x416bad
push esi
push 0
lea ecx, [esp + 0x18c]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push str.__ver
push eax
lea edx, [esp + 0xc8]
push edx
mov byte [esp + 0x25c], 0x6b
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x144]
push edx
mov byte [esp + 0x268], 0x6c
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x274], 0x6d
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x280], 0x6e
call fcn.004020b0
mov eax, dword [esp + 0xe8]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x6d
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416840
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x130]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x6c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41686b
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 + 0x250], 0x6b
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416896
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x184]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4168c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x416a21
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push esi
push ebx
lea ecx, [esp + 0x178]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push str.__ver
push eax
lea edx, [esp + 0xd8]
push edx
mov byte [esp + 0x25c], 0x6f
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x14c]
push edx
mov byte [esp + 0x268], 0x70
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0xe8]
push eax
mov byte [esp + 0x274], 0x71
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push ebp
mov byte [esp + 0x280], 0x72
call fcn.004020b0
mov eax, dword [esp + 0xf8]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x71
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416981
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x138]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x70
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4169ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xd0]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x6f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4169d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x170]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416a02
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x260]
call fcn.00401ff0
mov ebx, 1
mov dword [esp + 0x28], ebx
jmp 0x417c84
mov ecx, dword [esp + 0x3c]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4148aa
mov eax, dword [ebp + ebx*4 - 4]
lea edi, [ebp + ebx*4]
push ecx
push eax
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
jne 0x417c84
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push esi
push 0
lea edx, [esp + 0x188]
push edx
lea ecx, [esp + 0x24]
call fcn.00404d70
push str.__ver
push eax
lea eax, [esp + 0xe8]
push eax
mov byte [esp + 0x25c], 0x73
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x154]
push edx
mov byte [esp + 0x268], 0x74
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0xf8]
push eax
mov byte [esp + 0x274], 0x75
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push edi
mov byte [esp + 0x280], 0x76
call fcn.004020b0
mov eax, dword [esp + 0x108]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x75
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416b0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x140]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x74
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416b37
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xe0]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x73
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416b62
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x180]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416b8d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x25c]
lea ecx, [ecx + ebx*4]
push edx
call fcn.00401ff0
add ebx, 1
mov dword [esp + 0x28], ebx
jmp 0x417c84
cmp dword [edi - 0xc], 0
jl 0x417c84
push 0x46e8d8
push edi
call fcn.0044c647
add esp, 8
test eax, eax
je 0x417c84
sub eax, edi
je 0x417c84
cmp eax, 0xffffffff
je 0x417c84
push eax
push 0
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x24]
call fcn.00404d70
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x98]
mov byte [esp + 0x254], 0x5e
call fcn.0044396c
test eax, eax
mov edi, dword [esp + 0xac]
je 0x416db2
lea ebx, [ebx]
test edi, edi
je 0x416d99
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x416d99
push edi
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x416d99
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x416d99
push 0xc8
push 0
lea edx, [esp + 0x150]
push edx
lea ecx, [esp + 0x20]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x5f
call fcn.00401ff0
mov eax, dword [esp + 0x148]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x5e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416caa
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 0x416cb9
or eax, 0xffffffff
jmp 0x416ccf
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x416ccd
or eax, 0xffffffff
jmp 0x416ccf
sub eax, esi
push 0x64
add eax, 1
push eax
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x60
call fcn.00401ff0
mov eax, dword [esp + 0xf0]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x5e
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416d23
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 0x416d32
or eax, 0xffffffff
jmp 0x416d48
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x416d46
or eax, 0xffffffff
jmp 0x416d48
sub eax, esi
push eax
push 0
lea ecx, [esp + 0x180]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x61
call fcn.00401ff0
mov eax, dword [esp + 0x178]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x5e
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416d99
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 + 0x98]
call fcn.0044396c
test eax, eax
jne 0x416c20
push str.__ver
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x108]
push eax
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x164]
push edx
mov byte [esp + 0x268], 0x62
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0x118]
push eax
mov byte [esp + 0x274], 0x63
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x280], 0x64
call fcn.004020b0
mov eax, dword [esp + 0x128]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x63
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416e47
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x150]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x62
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416e72
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x100]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x5e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416e9d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
mov ecx, dword [esp + 0x3c]
jne 0x416fbb
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push str.__ver
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x160]
push edx
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x11c]
push edx
mov byte [esp + 0x268], 0x65
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0x18c]
push eax
mov byte [esp + 0x274], 0x66
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push ebp
mov byte [esp + 0x280], 0x67
call fcn.004020b0
mov eax, dword [esp + 0x19c]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x66
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416f4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x108]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x65
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416f75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x158]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x5e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416fa0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x260]
call fcn.00401ff0
mov ebx, 1
jmp 0x4170f7
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4148aa
mov eax, dword [ebp + ebx*4 - 4]
lea esi, [ebp + ebx*4]
push ecx
push eax
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4170fb
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push str.__ver
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x120]
push eax
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x188]
push edx
mov byte [esp + 0x268], 0x68
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0x130]
push eax
mov byte [esp + 0x274], 0x69
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push esi
mov byte [esp + 0x280], 0x6a
call fcn.004020b0
mov eax, dword [esp + 0x140]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x69
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41708a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x174]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x68
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4170b5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x118]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x5e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4170e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x25c]
lea ecx, [ecx + ebx*4]
push edx
call fcn.00401ff0
add ebx, 1
mov dword [esp + 0x28], ebx
lea eax, [edi - 0x10]
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417c84
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x417c84
mov ecx, dword [esp + 0x4c]
push 0x46e8e4
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x417c84
lea ecx, [esp + 0x14]
call fcn.0040ecd0
cmp dword [esp + 0x34], 0
je 0x417cf0
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x417cf0
mov edx, dword [esp + 0x34]
push edx
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x417cf0
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x417cf0
mov eax, dword [esp + 0x38]
push 0x46e8e4
push eax
call fcn.0044ca53
add esp, 8
test eax, eax
setne al
test al, al
je 0x417cf0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x258]
je 0x417c84
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x41721f
push 0x46e8ec
push ecx
call fcn.0044c647
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x4171fa
sub eax, ecx
cmp eax, 0xffffffff
jne 0x417c41
cmp dword [ecx - 0xc], 0
jl 0x41721f
push 0x46e8e8
push ecx
call fcn.0044c647
add esp, 8
test eax, eax
je 0x41721f
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
jne 0x417c41
push 2
push 0x46e8e4
lea ecx, [esp + 0x54]
call fcn.00401de0
push 0xc8
push 1
lea edx, [esp + 0x168]
push edx
lea ecx, [esp + 0x20]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x43
call fcn.00401ff0
mov eax, dword [esp + 0x160]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417284
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
cmp dword [edi - 0xc], 0
jle 0x4176d6
push 0x22
push edi
call fcn.0044d59e
add esp, 8
test eax, eax
je 0x4176d2
sub eax, edi
mov esi, eax
je 0x4176d2
cmp esi, 0xffffffff
je 0x4176d2
push esi
push 0
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push str.__ver
push eax
lea edx, [esp + 0x130]
push edx
mov byte [esp + 0x25c], 0x51
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x190]
push edx
mov byte [esp + 0x268], 0x52
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0x140]
push eax
mov byte [esp + 0x274], 0x53
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x280], 0x54
call fcn.004020b0
mov eax, dword [esp + 0x150]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x53
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417365
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x17c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x52
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417390
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x128]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x51
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4173bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4173e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x417546
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push esi
push ebx
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push str.__ver
push eax
lea edx, [esp + 0xcc]
push edx
mov byte [esp + 0x25c], 0x55
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0xd0]
push edx
mov byte [esp + 0x268], 0x56
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0xd4]
push eax
mov byte [esp + 0x274], 0x57
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push ebp
mov byte [esp + 0x280], 0x58
call fcn.004020b0
mov eax, dword [esp + 0xe4]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x57
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4174a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xbc]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x56
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4174d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xc4]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x55
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4174fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xcc]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417527
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x260]
call fcn.00401ff0
mov ebx, 1
mov dword [esp + 0x28], ebx
jmp 0x417c6b
mov ecx, dword [esp + 0x3c]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4148aa
mov eax, dword [ebp + ebx*4 - 4]
lea edi, [ebp + ebx*4]
push ecx
push eax
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
jne 0x417c6b
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push esi
push 0
lea edx, [esp + 0xf4]
push edx
lea ecx, [esp + 0x24]
call fcn.00404d70
push str.__ver
push eax
lea eax, [esp + 0xec]
push eax
mov byte [esp + 0x25c], 0x59
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0xf0]
push edx
mov byte [esp + 0x268], 0x5a
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0xf4]
push eax
mov byte [esp + 0x274], 0x5b
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push edi
mov byte [esp + 0x280], 0x5c
call fcn.004020b0
mov eax, dword [esp + 0x104]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x5b
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417631
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xdc]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x5a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41765c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xe4]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x59
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417687
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xec]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4176b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x25c]
lea ecx, [ecx + ebx*4]
push edx
call fcn.00401ff0
add ebx, 1
mov dword [esp + 0x28], ebx
jmp 0x417c6b
cmp dword [edi - 0xc], 0
jl 0x417c6b
push 0x46e8d8
push edi
call fcn.0044c647
add esp, 8
test eax, eax
je 0x417c6b
sub eax, edi
je 0x417c6b
cmp eax, 0xffffffff
je 0x417c6b
push eax
push 0
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x24]
call fcn.00404d70
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x98]
mov byte [esp + 0x254], 0x44
call fcn.0044396c
test eax, eax
mov edi, dword [esp + 0xf4]
je 0x4178d2
nop
test edi, edi
je 0x4178b9
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x4178b9
push edi
push eax
call fcn.0044c647
add esp, 8
test eax, eax
je 0x4178b9
sub eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x4178b9
push 0xc8
push 0
lea edx, [esp + 0x104]
push edx
lea ecx, [esp + 0x20]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x45
call fcn.00401ff0
mov eax, dword [esp + 0xfc]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x44
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4177ca
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 0x4177d9
or eax, 0xffffffff
jmp 0x4177ef
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x4177ed
or eax, 0xffffffff
jmp 0x4177ef
sub eax, esi
push 0x64
add eax, 1
push eax
lea ecx, [esp + 0x10c]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x46
call fcn.00401ff0
mov eax, dword [esp + 0x104]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x44
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417843
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 0x417852
or eax, 0xffffffff
jmp 0x417868
push 0x22
push esi
call fcn.0044d59e
add esp, 8
test eax, eax
jne 0x417866
or eax, 0xffffffff
jmp 0x417868
sub eax, esi
push eax
push 0
lea ecx, [esp + 0x114]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404d70
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x254], 0x47
call fcn.00401ff0
mov eax, dword [esp + 0x10c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x44
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4178b9
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 + 0x98]
call fcn.0044396c
test eax, eax
jne 0x417740
push str.__ver
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x12c]
push eax
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x130]
push edx
mov byte [esp + 0x268], 0x48
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0x134]
push eax
mov byte [esp + 0x274], 0x49
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x280], 0x4a
call fcn.004020b0
mov eax, dword [esp + 0x144]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x49
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417967
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x11c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x48
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417992
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x124]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x44
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4179bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
mov ecx, dword [esp + 0x3c]
jne 0x417adb
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push str.__ver
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x144]
push edx
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x148]
push edx
mov byte [esp + 0x268], 0x4b
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0x14c]
push eax
mov byte [esp + 0x274], 0x4c
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push ebp
mov byte [esp + 0x280], 0x4d
call fcn.004020b0
mov eax, dword [esp + 0x15c]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x4c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417a6a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x134]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x4b
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417a95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x13c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x44
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417ac0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x260]
call fcn.00401ff0
mov ebx, 1
jmp 0x417c17
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4148aa
mov eax, dword [ebp + ebx*4 - 4]
lea esi, [ebp + ebx*4]
push ecx
push eax
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
jne 0x417c1b
push 2
push 0x46e8e4
lea ecx, [esp + 0x40]
call fcn.00401de0
push str.__ver
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x15c]
push eax
call fcn.004020d0
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x160]
push edx
mov byte [esp + 0x268], 0x4e
call fcn.00403890
push 0x46d654
push eax
lea eax, [esp + 0x164]
push eax
mov byte [esp + 0x274], 0x4f
call fcn.004020d0
mov eax, dword [eax]
push 0x46ba90
push eax
push esi
mov byte [esp + 0x280], 0x50
call fcn.004020b0
mov eax, dword [esp + 0x174]
add eax, 0xfffffff0
add esp, 0x30
mov byte [esp + 0x250], 0x4f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417baa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x4e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417bd5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x154]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x44
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417c00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x25c]
lea ecx, [ecx + ebx*4]
push edx
call fcn.00401ff0
add ebx, 1
mov dword [esp + 0x28], ebx
lea eax, [edi - 0x10]
mov byte [esp + 0x250], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417c6b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x417c6b
mov ecx, dword [esp + 0x4c]
push 0x46e8e4
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
jne 0x417cf0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x258]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
jne 0x4171cf
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
jne 0x4166aa
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
jne 0x416600
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
jne 0x415c6b
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x98]
call fcn.0044396c
test eax, eax
jne 0x415bc4
mov ecx, dword [esp + 0x38]
push 0x46e94c
push ecx
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x417d1b
push 2
push 0x46e94c
lea ecx, [esp + 0x54]
call fcn.00401de0
lea ecx, [esp + 0x94]
call fcn.004437d5
mov ebx, dword [esp + 0x260]
mov edi, dword [esp + 0x2c]
lea edx, [ebx - 1]
cmp edi, edx
jge 0x417d87
mov eax, dword [esp + 0x4c]
push 0x46e8e4
push eax
call fcn.0044ca53
add esp, 8
test eax, eax
sete al
test al, al
je 0x417d87
mov ecx, dword [esp + 0x258]
mov esi, dword [esp + 0x28]
push str._________________________________________________________________________________
lea ecx, [ecx + esi*4]
call fcn.00402e20
mov edx, dword [esp + 0x25c]
push str._________________________________________________________________________________
lea ecx, [edx + esi*4]
call fcn.00402e20
add esi, 1
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x30]
call fcn.00401af0
lea ecx, [esp + 0x34]
call fcn.00401af0
lea ecx, [esp + 0x48]
call fcn.00401af0
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x33
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417dca
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 + 0x250], 0x32
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417df2
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 + 0x250], 0x31
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417e1a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x30
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417e42
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 + 0x250], 0x2f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417e6a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 1
cmp edi, ebx
mov dword [esp + 0x2c], edi
jl 0x415b1c
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x258]
mov edx, dword [esp + 0x25c]
mov dword [eax + 0x35c], ecx
mov ecx, dword [esp + 0x260]
mov dword [eax + 0x360], edx
mov edx, dword [esp + 0x28]
mov dword [eax + 0x484], ecx
mov dword [eax + 0x488], edx
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x2e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417ed9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x2d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417f01
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 + 0x250], 0x2c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417f29
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x250], 0x2b
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417f51
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 + 0x250], 0x2a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417f79
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 + 0x250], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417fa1
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 + 0x250], 0x28
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417fc9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x94]
mov byte [esp + 0x250], 5
call fcn.00443839
mov eax, dword [esp + 0xa8]
add eax, 0xfffffff0
mov byte [esp + 0x250], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418008
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
mov byte [esp + 0x250], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418030
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x230]
mov byte [esp + 0x250], 2
call fcn.0044416f
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x250], 1
call fcn.0044416f
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov dword [esp + 0x250], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418083
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x240
ret 0xc
call fcn.00401190
push 0x80070057
call fcn.00401000
int3