Function at 0x4061f0
Capabilities:
Get disk information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x570fb9
mov eax, dword fs:[0]
push eax
sub esp, 0x398
mov eax, dword [0x5d4d80]
xor eax, esp
mov dword [esp + 0x390], eax
push ebx
push esi
push edi
mov eax, dword [0x5d4d80]
xor eax, esp
push eax
lea eax, [esp + 0x3a8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
call fcn.00427cc5
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x406253
push 0x80004005
call fcn.00403aa0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push 0x104
mov dword [esp + 0x3b4], ebx
call fcn.00427e64
cmp eax, ebx
je 0x406287
push 0x104
push eax
lea ecx, [esp + 0x20]
call fcn.00403470
mov ecx, dword [esp + 0x2c]
push ebx
mov eax, 0x20
add ecx, 0x158c
push ebx
mov edx, eax
push 0x72
mov dword [ecx + 0x50], eax
mov dword [ecx + 0x54], edx
call fcn.00439966
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.style
call fcn.00403630
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x3b8], 1
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 2
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
mov edi, dword [esp + 0x14]
movzx eax, ax
cmp ax, bx
jne 0x40632a
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a5ffc]
mov dword [eax], edx
mov cx, word [0x5a6000]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x406330
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 3
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 4
call fcn.00403b60
mov byte [esp + 0x3b0], 3
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40637f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x4063a4
cmp word [edi + 0xa], 1
jne 0x4063a0
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x4063a4
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4063cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x15c
call fcn.00427114
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 5
cmp eax, ebx
je 0x406401
mov ecx, dword [esp + 0x18]
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.0043d9c3
mov dword [esp + 0x50], eax
jmp 0x406405
mov dword [esp + 0x50], ebx
mov byte [esp + 0x3b0], bl
call fcn.00434891
mov eax, dword [eax + 0xc]
push 0xc8
push eax
call dword [sym.imp.USER32.dll_LoadMenuW]
mov ecx, dword [esp + 0x2c]
push eax
add ecx, 0x2a58
call fcn.004314b4
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.bluestyle
call fcn.00403630
lea edx, [esp + 0x28]
push edx
mov byte [esp + 0x3b8], 6
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov edi, eax
mov byte [esp + 0x3b0], 7
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x4064b1
mov ecx, dword [esp + 0x14]
movsx eax, word [ecx + 4]
add eax, dword [ecx]
mov edx, dword [0x5a6018]
mov dword [eax], edx
mov dx, word [0x5a601c]
mov word [eax + 4], dx
add word [ecx + 4], 6
jmp 0x4064b7
mov word [0x5ee374], ax
mov eax, edi
lea esi, [esp + 0x44]
mov byte [esp + 0x3b0], 8
call fcn.00418770
mov eax, dword [eax]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x2a5c]
push 0xd7
push 0x400
push ebx
push ecx
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406509
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
cmp esi, ebx
je 0x406532
cmp word [esi + 0xa], 1
jne 0x40652e
mov eax, dword [esi]
push eax
call fcn.00427143
add esp, 4
push esi
call fcn.00427143
add esp, 4
jmp 0x406532
dec word [esi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406559
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.blackstyle
call fcn.00403630
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x3b8], 9
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 0xa
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
mov edi, dword [esp + 0x14]
movzx eax, ax
cmp ax, bx
jne 0x4065dc
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a6038]
mov dword [eax], edx
mov cx, word [0x5a603c]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x4065e2
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0xb
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
mov eax, dword [eax]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [edx + 0x2a5c]
push 0xd8
push 0x400
push 1
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406637
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x40665c
cmp word [edi + 0xa], 1
jne 0x406658
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x40665c
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406683
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.silverstyle
call fcn.00403630
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x3b8], 0xc
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 0xd
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
mov edi, dword [esp + 0x14]
movzx eax, ax
cmp ax, bx
jne 0x406706
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a6058]
mov dword [eax], edx
mov cx, word [0x5a605c]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x40670c
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0xe
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
mov eax, dword [eax]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [edx + 0x2a5c]
push 0xd9
push 0x400
push 2
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406761
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x406786
cmp word [edi + 0xa], 1
jne 0x406782
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x406786
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4067ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.aquastyle
call fcn.00403630
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x3b8], 0xf
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 0x10
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
mov edi, dword [esp + 0x14]
movzx eax, ax
cmp ax, bx
jne 0x406830
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a6074]
mov dword [eax], edx
mov cx, word [0x5a6078]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x406836
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x11
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
mov eax, dword [eax]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [edx + 0x2a5c]
push 0xda
push 0x400
push 3
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40688b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x4068b0
cmp word [edi + 0xa], 1
jne 0x4068ac
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x4068b0
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4068d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x2a5c]
mov ecx, dword [esp + 0x50]
push 1
push ebx
push edx
call fcn.0043dddb
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.modifystyle
call fcn.00403630
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x3b8], 0x12
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 0x13
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
mov edi, dword [esp + 0x14]
movzx eax, ax
cmp ax, bx
jne 0x406971
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a6094]
mov dword [eax], ecx
mov dx, word [0x5a6098]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x406977
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x14
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x15
call fcn.00403b60
mov byte [esp + 0x3b0], 0x14
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4069c6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x4069eb
cmp word [edi + 0xa], 1
jne 0x4069e7
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x4069eb
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov eax, dword [esp + 0x18]
mov edx, dword [edx + 0x24]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.selectstyle
call fcn.00403630
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x3b8], 0x16
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 0x17
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
mov edi, dword [esp + 0x14]
movzx eax, ax
cmp ax, bx
jne 0x406aa5
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a60b4]
mov dword [eax], ecx
mov dx, word [0x5a60b8]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x406aab
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x18
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x19
call fcn.00403b60
mov byte [esp + 0x3b0], 0x18
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406afa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x406b1f
cmp word [edi + 0xa], 1
jne 0x406b1b
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x406b1f
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406b46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x50]
mov edx, dword [esi]
mov eax, dword [esp + 0x18]
mov edx, dword [edx + 0x28]
push eax
mov ecx, esi
call edx
mov edi, dword [esp + 0x2c]
add edi, 0x3f8
push esi
mov ecx, edi
call fcn.00444732
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.MaxiSysPrinter
call fcn.00403630
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x3b8], 0x1a
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 0x1b
mov eax, 6
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x406bed
mov ecx, dword [esp + 0x14]
movsx eax, word [ecx + 4]
add eax, dword [ecx]
mov edx, dword [0x5a5fa8]
mov dword [eax], edx
mov dx, word [0x5a5fac]
mov word [eax + 4], dx
add word [ecx + 4], 6
jmp 0x406bf3
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x1c
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x1d
call fcn.00403b60
mov byte [esp + 0x3b0], 0x1c
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
cmp esi, ebx
je 0x406c6b
cmp word [esi + 0xa], 1
jne 0x406c67
mov eax, dword [esi]
push eax
call fcn.00427143
add esp, 4
push esi
call fcn.00427143
add esp, 4
jmp 0x406c6b
dec word [esi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c92
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
push 0xffffffffffffffff
mov eax, 0x20
mov ecx, eax
push ecx
mov ecx, dword [esp + 0x24]
push eax
mov edx, 0x10
mov esi, edx
push esi
push edx
push 0x142
push 0x140
push ecx
mov ecx, edi
call fcn.00445174
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.MaxiCheckPrinter
mov dword [esp + 0x58], eax
mov dword [edx + 0x2684], eax
call fcn.00403630
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x3b8], 0x1e
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x44], eax
mov byte [esp + 0x3b0], 0x1f
lea eax, [esi - 0xa]
lea esi, [esp + 0x10]
mov dword [esp + 0x10], vtable.CBinary.0
mov dword [esp + 0x14], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x406d4c
mov ecx, dword [esp + 0x14]
movsx eax, word [ecx + 4]
add eax, dword [ecx]
mov edx, dword [0x5a5fa8]
mov dword [eax], edx
mov dx, word [0x5a5fac]
mov word [eax + 4], dx
add word [ecx + 4], 6
jmp 0x406d52
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x20
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x24]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x21
call fcn.00403b60
mov byte [esp + 0x3b0], 0x20
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406da1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
cmp esi, ebx
je 0x406dca
cmp word [esi + 0xa], 1
jne 0x406dc6
mov eax, dword [esi]
push eax
call fcn.00427143
add esp, 4
push esi
call fcn.00427143
add esp, 4
jmp 0x406dca
dec word [esi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406df1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
push 0xffffffffffffffff
mov eax, 0x20
mov ecx, eax
push ecx
mov ecx, dword [esp + 0x24]
push eax
mov edx, 0x10
mov esi, edx
push esi
push edx
push 0x142
push 0x140
push ecx
mov ecx, edi
call fcn.00445174
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.print
mov dword [esp + 0x18], eax
mov dword [edx + 0x2690], eax
call fcn.00403630
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x3b8], 0x22
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov edi, eax
mov byte [esp + 0x3b0], 0x23
lea eax, [esi - 0xa]
lea esi, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.CBinary.0
mov dword [esp + 0x20], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x406ea9
mov ecx, dword [esp + 0x20]
movsx eax, word [ecx + 4]
add eax, dword [ecx]
mov edx, dword [0x5a60e0]
mov dword [eax], edx
mov dx, word [0x5a60e4]
mov word [eax + 4], dx
add word [ecx + 4], 6
jmp 0x406eaf
mov word [0x5ee374], ax
mov eax, edi
lea esi, [esp + 0x44]
mov byte [esp + 0x3b0], 0x24
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x25
call fcn.00403b60
mov byte [esp + 0x3b0], 0x24
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406efc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x20]
cmp esi, ebx
je 0x406f25
cmp word [esi + 0xa], 1
jne 0x406f21
mov eax, dword [esi]
push eax
call fcn.00427143
add esp, 4
push esi
call fcn.00427143
add esp, 4
jmp 0x406f25
dec word [esi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406f4c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push ebx
add ecx, 0x158c
push 7
mov dword [esp + 0x4c], ecx
call fcn.004378ad
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
call fcn.0045465d
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.quickprint
mov dword [esp + 0x48], eax
call fcn.00403630
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x3b8], 0x26
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x24], eax
mov byte [esp + 0x3b0], 0x27
mov eax, 6
lea esi, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.CBinary.0
mov dword [esp + 0x20], ebx
call fcn.00416720
mov edi, dword [esp + 0x20]
movzx eax, ax
cmp ax, bx
jne 0x406ff8
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a6100]
mov dword [eax], ecx
mov dx, word [0x5a6104]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x406ffe
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x28
mov eax, dword [esp + 0x24]
lea esi, [esp + 0x54]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x29
call fcn.00403b60
mov byte [esp + 0x3b0], 0x28
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40704d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x407072
cmp word [edi + 0xa], 1
jne 0x40706e
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x407072
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407099
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x15c
call fcn.00427114
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3b0], 0x2a
cmp eax, ebx
je 0x4070cd
mov ecx, dword [esp + 0x18]
push ebx
push 1
push 1
push ecx
push 0x6c
mov ecx, eax
call fcn.0043d9c3
mov edi, eax
jmp 0x4070cf
xor edi, edi
push ecx
mov byte [esp + 0x3b4], bl
mov ecx, esp
mov dword [esp + 0x20], esp
push str.quickprinttip
call fcn.00403630
lea edx, [esp + 0x28]
push edx
mov byte [esp + 0x3b8], 0x2b
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x38], eax
mov byte [esp + 0x3b0], 0x2c
mov eax, 6
lea esi, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.CBinary.0
mov dword [esp + 0x20], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x407159
mov ecx, dword [esp + 0x20]
movsx eax, word [ecx + 4]
add eax, dword [ecx]
mov edx, dword [0x5a6124]
mov dword [eax], edx
mov dx, word [0x5a6128]
mov word [eax + 4], dx
add word [ecx + 4], 6
jmp 0x40715f
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x2d
mov eax, dword [esp + 0x38]
lea esi, [esp + 0x54]
call fcn.00418770
mov byte [esp + 0x3b0], 0x2e
mov eax, dword [eax]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov byte [esp + 0x3b0], 0x2d
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4071b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x20]
cmp esi, ebx
je 0x4071d9
cmp word [esi + 0xa], 1
jne 0x4071d5
mov eax, dword [esi]
push eax
call fcn.00427143
add esp, 4
push esi
call fcn.00427143
add esp, 4
jmp 0x4071d9
dec word [esi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407200
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push edi
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.print
call fcn.00403630
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x3b8], 0x2f
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x38], eax
mov byte [esp + 0x3b0], 0x30
mov eax, 6
lea esi, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.CBinary.0
mov dword [esp + 0x20], ebx
call fcn.00416720
mov edi, dword [esp + 0x20]
movzx eax, ax
cmp ax, bx
jne 0x40728f
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a60e0]
mov dword [eax], edx
mov cx, word [0x5a60e4]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x407295
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x31
mov eax, dword [esp + 0x38]
lea esi, [esp + 0x54]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x32
call fcn.00403b60
mov byte [esp + 0x3b0], 0x31
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4072e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x407309
cmp word [edi + 0xa], 1
jne 0x407305
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x407309
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407330
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x15c
call fcn.00427114
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3b0], 0x33
cmp eax, ebx
je 0x407364
mov ecx, dword [esp + 0x18]
push ebx
push ebx
push ebx
push ecx
push 0x6b
mov ecx, eax
call fcn.0043d9c3
mov dword [esp + 0x24], eax
jmp 0x407368
mov dword [esp + 0x24], ebx
push ecx
mov byte [esp + 0x3b4], bl
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.printtip
call fcn.00403630
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x3b8], 0x34
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x38], eax
mov byte [esp + 0x3b0], 0x35
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x4073f2
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a6140]
mov dword [eax], ecx
mov dx, word [0x5a6144]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x4073f8
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x36
mov eax, dword [esp + 0x38]
lea esi, [esp + 0x54]
call fcn.00418770
mov byte [esp + 0x3b0], 0x37
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x24]
call eax
mov byte [esp + 0x3b0], 0x36
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40744b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x407470
cmp word [edi + 0xa], 1
jne 0x40746c
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x407470
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407497
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, dword [esp + 0x24]
mov edx, dword [edx + 0x28]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.testprint
call fcn.00403630
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x3b8], 0x38
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3b0], 0x39
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x40752a
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a615c]
mov dword [eax], ecx
mov dx, word [0x5a6160]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x407530
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x3a
mov eax, dword [esp + 0x1c]
lea esi, [esp + 0x38]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x3b
call fcn.00403b60
mov byte [esp + 0x3b0], 0x3a
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40757f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x4075a4
cmp word [edi + 0xa], 1
jne 0x4075a0
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x4075a4
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4075cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x15c
call fcn.00427114
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3b0], 0x3c
cmp eax, ebx
je 0x407602
mov ecx, dword [esp + 0x18]
push ebx
push 2
push 2
push ecx
push 0xc8
mov ecx, eax
call fcn.0043d9c3
mov edi, eax
jmp 0x407604
xor edi, edi
push ecx
mov byte [esp + 0x3b4], bl
mov ecx, esp
mov dword [esp + 0x20], esp
push str.testprinttip
call fcn.00403630
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x3b8], 0x3d
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3b0], 0x3e
mov eax, 6
lea esi, [esp + 0x24]
mov dword [esp + 0x24], vtable.CBinary.0
mov dword [esp + 0x28], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x40768e
mov ecx, dword [esp + 0x28]
movsx eax, word [ecx + 4]
add eax, dword [ecx]
mov edx, dword [0x5a6180]
mov dword [eax], edx
mov dx, word [0x5a6184]
mov word [eax + 4], dx
add word [ecx + 4], 6
jmp 0x407694
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x3f
mov eax, dword [esp + 0x1c]
lea esi, [esp + 0x38]
call fcn.00418770
mov byte [esp + 0x3b0], 0x40
mov eax, dword [eax]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov byte [esp + 0x3b0], 0x3f
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4076e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x28]
cmp esi, ebx
je 0x40770e
cmp word [esi + 0xa], 1
jne 0x40770a
mov eax, dword [esi]
push eax
call fcn.00427143
add esp, 4
push esi
call fcn.00427143
add esp, 4
jmp 0x40770e
dec word [esi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407735
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push edi
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.print
call fcn.00403630
lea ecx, [esp + 0x58]
push ecx
mov byte [esp + 0x3b8], 0x41
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x1c], eax
mov byte [esp + 0x3b0], 0x42
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x4077c4
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a60e0]
mov dword [eax], edx
mov cx, word [0x5a60e4]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x4077ca
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x43
mov eax, dword [esp + 0x1c]
lea esi, [esp + 0x38]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x44
call fcn.00403b60
mov byte [esp + 0x3b0], 0x43
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407819
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x40783e
cmp word [edi + 0xa], 1
jne 0x40783a
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x40783e
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407865
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
push ebx
push 7
call fcn.004378ad
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push eax
push esi
call fcn.0045465d
push 0x15c
mov dword [esp + 0x44], eax
call fcn.00427114
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x45
cmp eax, ebx
je 0x4078b4
push ebx
push ebx
push ebx
push esi
push 0x6d
mov ecx, eax
call fcn.0043d9c3
mov dword [esp + 0x24], eax
jmp 0x4078b8
mov dword [esp + 0x24], ebx
push ecx
mov byte [esp + 0x3b4], bl
mov ecx, esp
mov dword [esp + 0x14], esp
push str.printtip
call fcn.00403630
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x3b8], 0x46
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x47
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x407942
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a6140]
mov dword [eax], edx
mov cx, word [0x5a6144]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x407948
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x48
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
mov byte [esp + 0x3b0], 0x49
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x24]
call eax
mov byte [esp + 0x3b0], 0x48
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40799b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x4079c0
cmp word [edi + 0xa], 1
jne 0x4079bc
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x4079c0
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4079e7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, dword [esp + 0x24]
mov edx, dword [edx + 0x28]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.printsetting
call fcn.00403630
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x3b8], 0x4a
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x4b
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x407a7a
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a61a4]
mov dword [eax], ecx
mov dx, word [0x5a61a8]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x407a80
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x4c
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x4d
call fcn.00403b60
mov byte [esp + 0x3b0], 0x4c
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407acf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x407af4
cmp word [edi + 0xa], 1
jne 0x407af0
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x407af4
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407b1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
push ebx
push 7
call fcn.004378ad
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
call fcn.0045465d
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.autoprint
mov dword [esp + 0x5c], eax
call fcn.00403630
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x3b8], 0x4e
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x4f
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x407bbd
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a61c0]
mov dword [eax], ecx
mov dx, word [0x5a61c4]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x407bc3
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x50
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x51
call fcn.00403b60
mov byte [esp + 0x3b0], 0x50
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407c12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x407c37
cmp word [edi + 0xa], 1
jne 0x407c33
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x407c37
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407c5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x15c
call fcn.00427114
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x52
cmp eax, ebx
je 0x407c92
mov ecx, dword [esp + 0x18]
push ecx
push 0x8004
mov ecx, eax
call fcn.0045602f
mov dword [esp + 0x24], eax
jmp 0x407c96
mov dword [esp + 0x24], ebx
push ecx
mov byte [esp + 0x3b4], bl
mov ecx, esp
mov dword [esp + 0x14], esp
push str.autoprinttip
call fcn.00403630
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x3b8], 0x53
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x54
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x407d20
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a61e4]
mov dword [eax], ecx
mov dx, word [0x5a61e8]
mov word [eax + 4], dx
add word [edi + 4], 6
jmp 0x407d26
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x55
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
mov byte [esp + 0x3b0], 0x56
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x24]
call eax
mov byte [esp + 0x3b0], 0x55
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407d79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x407d9e
cmp word [edi + 0xa], 1
jne 0x407d9a
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x407d9e
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407dc5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
mov eax, dword [esp + 0x24]
mov edx, dword [edx + 0x28]
push eax
call edx
push 0x1d8
call fcn.00427114
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x57
cmp eax, ebx
je 0x407dfa
push eax
call fcn.0041f720
jmp 0x407dfc
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x3b0], bl
push ebx
mov dword [ecx + 0x2694], eax
push 0x64
mov ecx, eax
call fcn.00456894
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.openpdffile
call fcn.00403630
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x3b8], 0x58
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x59
mov eax, 4
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x407e8f
movsx eax, word [edi + 4]
add eax, dword [edi]
mov ecx, dword [0x5a61c0]
mov dword [eax], ecx
add word [edi + 4], 4
jmp 0x407e95
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x5a
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x5b
call fcn.00403b60
mov byte [esp + 0x3b0], 0x5a
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407ee4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x407f09
cmp word [edi + 0xa], 1
jne 0x407f05
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x407f09
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
push ebx
push 2
call fcn.004378ad
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
push eax
push esi
call fcn.0045465d
push 0x15c
mov dword [esp + 0x58], eax
call fcn.00427114
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x5c
cmp eax, ebx
je 0x407f7f
push ebx
push 4
push 1
push esi
push 0x6a
mov ecx, eax
call fcn.0043d9c3
mov edi, eax
jmp 0x407f81
xor edi, edi
push ecx
mov byte [esp + 0x3b4], bl
mov ecx, esp
mov dword [esp + 0x14], esp
push str.openpdffiletip
call fcn.00403630
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x3b8], 0x5d
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x5e
mov eax, 1
lea esi, [esp + 0x44]
mov dword [esp + 0x44], vtable.CBinary.0
mov dword [esp + 0x48], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x407fff
mov eax, dword [esp + 0x48]
movsx edx, word [eax + 4]
add edx, dword [eax]
mov cl, byte [0x5a61e4]
mov byte [edx], cl
inc word [eax + 4]
jmp 0x408005
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x5f
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
mov byte [esp + 0x3b0], 0x60
mov eax, dword [eax]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov byte [esp + 0x3b0], 0x5f
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408056
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x48]
cmp esi, ebx
je 0x40807f
cmp word [esi + 0xa], 1
jne 0x40807b
mov eax, dword [esi]
push eax
call fcn.00427143
add esp, 4
push esi
call fcn.00427143
add esp, 4
jmp 0x40807f
dec word [esi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4080a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push edi
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x5a5458
call fcn.00403630
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x3b8], 0x61
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x62
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x408135
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a5ffc]
mov dword [eax], edx
mov cx, word [0x5a6000]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x40813b
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x63
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x64
call fcn.00403b60
mov byte [esp + 0x3b0], 0x63
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40818a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x4081af
cmp word [edi + 0xa], 1
jne 0x4081ab
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x4081af
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4081d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push ebx
push 6
add ecx, 0x158c
call fcn.004378ad
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
push eax
push edi
call fcn.0045465d
push 0x15c
mov esi, eax
call fcn.00427114
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x65
cmp eax, ebx
je 0x40822a
push ebx
push 2
push 2
push edi
push 0x99
mov ecx, eax
call fcn.0043d9c3
jmp 0x40822c
xor eax, eax
mov byte [esp + 0x3b0], bl
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x28]
mov ecx, esi
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.help
call fcn.00403630
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x3b8], 0x66
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3b8], bl
call fcn.0041bec0
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x67
mov eax, 6
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CBinary.0
mov dword [esp + 0x34], ebx
call fcn.00416720
mov edi, dword [esp + 0x34]
movzx eax, ax
cmp ax, bx
jne 0x4082c0
movsx eax, word [edi + 4]
add eax, dword [edi]
mov edx, dword [0x5a6230]
mov dword [eax], edx
mov cx, word [0x5a6234]
mov word [eax + 4], cx
add word [edi + 4], 6
jmp 0x4082c6
mov word [0x5ee374], ax
mov byte [esp + 0x3b0], 0x68
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
call fcn.00418770
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b4], 0x69
call fcn.00403b60
mov byte [esp + 0x3b0], 0x68
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408315
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
je 0x40833a
cmp word [edi + 0xa], 1
jne 0x408336
mov eax, dword [edi]
push eax
call fcn.00427143
add esp, 4
push edi
call fcn.00427143
add esp, 4
jmp 0x40833a
dec word [edi + 0xa]
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408361
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push ebx
push 6
add ecx, 0x158c
call fcn.004378ad
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
push eax
push edi
call fcn.0045465d
push 0x15c
mov esi, eax
call fcn.00427114
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x3b0], 0x6a
cmp eax, ebx
je 0x4083b5
push ebx
push 3
push 3
push edi
push 0xe142
mov ecx, eax
call fcn.0043d9c3
jmp 0x4083b7
xor eax, eax
mov byte [esp + 0x3b0], bl
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x28]
mov ecx, esi
call eax
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.selectdriver
call fcn.00403630
lea ecx, [esp + 0x24]
push ecx
mov byte [esp + 0x3bc], 0x6b
call fcn.0041b560
mov ecx, eax
mov byte [esp + 0x3bc], bl
call fcn.0041bec0
mov edi, eax
mov byte [esp + 0x3b4], 0x6c
mov eax, 6
lea esi, [esp + 0x3c]
mov dword [esp + 0x3c], vtable.CBinary.0
mov dword [esp + 0x40], ebx
call fcn.00416720
movzx eax, ax
cmp ax, bx
jne 0x40844a
mov ecx, dword [esp + 0x40]
movsx eax, word [ecx + 4]
add eax, dword [ecx]
mov edx, dword [0x5a6254]
mov dword [eax], edx
mov dx, word [0x5a6258]
mov word [eax + 4], dx
add word [ecx + 4], 6
jmp 0x408450
mov word [0x5ee374], ax
mov eax, edi
lea esi, [esp + 0x14]
mov byte [esp + 0x3b4], 0x6d
call fcn.00418770
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x3b4], 0x6e
mov eax, dword [eax]
mov ecx, dword [ecx + 0x2694]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x1dc]
call eax
mov byte [esp + 0x3b0], 0x6d
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4084aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x38]
call fcn.004164d0
mov byte [esp + 0x3b0], bl
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4084da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x100
lea ecx, [esp + 0x1a0]
push ebx
push ecx
call fcn.00542b10
add esp, 0xc
lea edx, [esp + 0x19c]
push edx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov esi, eax
push 0xa0
lea eax, [esp + 0x60]
push ebx
push eax
mov dword [esp + 0x44], esi
call fcn.00542b10
add esp, 0xc
xor eax, eax
cmp esi, ebx
mov dword [esp + 0x54], ebx
mov byte [esp + 0x4f], bl
mov dword [esp + 0x44], ebx
jle 0x4085f4
lea esi, [esp + 0x5c]
mov edi, esi
lea ecx, [esp + 0x54]
sub edi, ecx
mov edi, edi
mov edx, dword [esp + 0x44]
movzx ecx, word [esp + edx*2 + 0x19c]
cmp cx, bx
jne 0x4085d5
xor ecx, ecx
mov word [esp + eax*2 + 0x54], cx
lea eax, [esp + 0x54]
movzx ecx, word [eax]
mov word [eax + edi], cx
add eax, 2
cmp cx, bx
jne 0x408560
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
sub eax, 2
je 0x4085a0
sub eax, 1
jne 0x4085cb
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0x2694]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1dc]
push ebx
push esi
call edx
add esi, 0xa
add edi, 0xa
xor eax, eax
jmp 0x4085db
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x2694]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1dc]
push ebx
push esi
mov byte [esp + 0x57], 1
call eax
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x2694]
push esi
call fcn.00458b2f
add esi, 0xa
add edi, 0xa
xor eax, eax
jmp 0x4085db
mov word [esp + eax*2 + 0x54], cx
inc eax
mov ecx, dword [esp + 0x44]
inc ecx
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x44], ecx
jl 0x408540
cmp byte [esp + 0x4f], bl
jne 0x408604
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0x2694]
push ebx
call fcn.00458a26
movzx eax, byte [esp + 0x4f]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x2694]
mov dword [edx + 0x1d4], eax
mov dword [esp + 0x3b0], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408644
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x390]
xor ecx, esp
call fcn.0053d842
mov esp, ebp
pop ebp
ret 4