Function at 0x469df0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x4f70d4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebx
push ebp
push esi
push edi
mov ebx, ecx
xor ebp, ebp
lea ecx, [esp + 0x30]
push ebp
mov dword [esp + 0x104], ebp
call fcn.0044e9a0
push ebp
lea ecx, [esp + 0x20]
mov byte [esp + 0x104], 1
call fcn.0044e9a0
push ebp
lea ecx, [esp + 0xec]
mov byte [esp + 0x104], 2
call fcn.0044e9a0
lea ecx, [esp + 0x50]
mov byte [esp + 0x100], 3
call fcn.0044a000
mov esi, dword [ebx + 0x1b4]
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call sub.MFC42.DLL_CString::CString_4
push ebp
lea ecx, [esp + 0x10c]
mov byte [esp + 0x104], 5
call sub.MFC42.DLL_CString::GetBuffer
mov edx, eax
mov al, byte [esp + 0x17]
mov byte [esp + 0x40], al
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea ecx, [esp + 0x30]
push 1
lea edx, [esp + 0x44]
push ecx
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x10c], 6
call fcn.0044a090
and eax, 0xff
mov byte [esp + 0x100], 5
mov edi, eax
mov eax, dword [esp + 0x44]
cmp eax, ebp
je 0x469f07
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x469efe
cmp al, 0xff
je 0x469efe
dec al
mov byte [ecx], al
jmp 0x469f07
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
push 0xffffffffffffffff
lea ecx, [esp + 0x10c]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
call sub.MFC42.DLL_CString::ReleaseBuffer
cmp edi, ebp
jne 0x469fd8
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call sub.MFC42.DLL_CString::CString
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 9
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 7
cmp eax, ebp
je 0x469f90
lea ecx, [esp + 0x80]
call fcn.0042c1b0
cmp dword [esp + 0xac], ebp
jne 0x469f7b
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x46a3e2
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
add ecx, 4
dec eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
je 0x469fc4
mov eax, ecx
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jne 0x469fcd
lea ecx, [esp + 0x50]
call fcn.0042c550
cmp dword [esp + 0x7c], ebp
jne 0x469fa4
jmp 0x46a3e2
lea ecx, [esp + 0x30]
call fcn.0044f140
cmp eax, 6
je 0x46a095
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call sub.MFC42.DLL_CString::CString
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 0xc
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 0xb
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 0xa
cmp eax, ebp
je 0x46a051
lea ecx, [esp + 0x80]
call fcn.0042c1b0
cmp dword [esp + 0xac], ebp
jne 0x46a03c
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x46a3e2
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
add ecx, 4
dec eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
je 0x46a081
cmp ecx, dword [esp + 0x58]
jne 0x46a08a
lea ecx, [esp + 0x50]
call fcn.0042c550
cmp dword [esp + 0x7c], ebp
jne 0x46a065
jmp 0x46a3e2
cmp esi, ebp
je 0x46a0aa
mov eax, esi
mov esi, dword [esi]
cmp esi, ebp
mov eax, dword [eax + 8]
mov dword [eax + 0x48], ebp
mov dword [eax + 0x4c], ebp
jne 0x46a099
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], ebp
call fcn.0044fc80
test eax, eax
jbe 0x46a20d
jmp 0x46a0c3
xor ebp, ebp
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.0044fd30
push eax
lea ecx, [esp + 0x20]
call fcn.0044f040
lea ecx, [esp + 0x1c]
call fcn.0044f140
cmp eax, 7
jne 0x46a320
push 0x5261ac
lea ecx, [esp + 0x20]
call fcn.0044fea0
push eax
call fcn.0040c7d0
add esp, 4
lea ecx, [esp + 0x1c]
mov esi, eax
push str.price
call fcn.0044fea0
push eax
call fcn.0040c7d0
mov ebp, eax
mov eax, 0x68db8bad
imul esi
sar edx, 0xc
mov eax, edx
mov ecx, 0x2710
shr eax, 0x1f
add edx, eax
mov eax, esi
mov edi, edx
add esp, 4
cdq
idiv ecx
mov ecx, ebx
push edx
call fcn.004671e0
push str.lock
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.0044fea0
push eax
call fcn.0040c7d0
add esp, 4
mov dword [esp + 0x2c], eax
test esi, esi
je 0x46a1f1
cmp edi, 1
jne 0x46a1ad
push str.amount
lea ecx, [esp + 0x20]
call fcn.0044fea0
push eax
call fcn.0040c7d0
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x3c]
add esp, 4
test eax, eax
jne 0x46a19a
push esi
mov ecx, ebx
mov dword [esi + 0x3c], ebp
call fcn.0047ad00
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esi + 0x44]
je 0x46a1a9
or al, 4
jmp 0x46a1ee
and al, 0xfb
jmp 0x46a1ee
test edi, edi
jne 0x46a1f1
push str.amount
lea ecx, [esp + 0x20]
call fcn.0044fea0
push eax
call fcn.0040c7d0
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x40]
add esp, 4
test eax, eax
jne 0x46a1dd
push esi
mov ecx, ebx
mov dword [esi + 0x40], ebp
call fcn.0047ad00
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esi + 0x44]
je 0x46a1ec
or al, 8
jmp 0x46a1ee
and al, 0xf7
mov dword [esi + 0x44], eax
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x30]
inc esi
mov dword [esp + 0x18], esi
call fcn.0044fc80
cmp esi, eax
jb 0x46a0c1
xor ebp, ebp
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call sub.MFC42.DLL_CString::CString
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 0x12
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 0x11
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 0x10
cmp eax, ebp
je 0x46a274
lea ecx, [esp + 0x80]
call fcn.0042c1b0
cmp dword [esp + 0xac], ebp
jne 0x46a25f
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x46a2b3
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
add ecx, 4
dec eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
je 0x46a2a4
mov eax, ecx
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jne 0x46a2ad
lea ecx, [esp + 0x50]
call fcn.0042c550
cmp dword [esp + 0x7c], ebp
jne 0x46a284
lea ecx, [esp + 0xe8]
mov byte [esp + 0x100], 2
call fcn.0044eec0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x100], 1
call fcn.0044eec0
lea ecx, [esp + 0x30]
mov byte [esp + 0x100], 0
call fcn.0044eec0
lea ecx, [esp + 0x108]
mov dword [esp + 0x100], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
mov ecx, dword [esp + 0xf8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xf4
ret 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call sub.MFC42.DLL_CString::CString
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 0xf
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 0xe
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 0xd
cmp eax, ebp
je 0x46a3c3
mov eax, dword [esp + 0x8c]
push ebp
mov ecx, eax
add eax, 0x20
mov dword [esp + 0x90], eax
call fcn.0042c6f0
mov eax, dword [esp + 0xac]
dec eax
mov dword [esp + 0xac], eax
je 0x46a3ae
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
cmp edx, eax
jne 0x46a3ba
lea ecx, [esp + 0x80]
call fcn.0042c550
cmp dword [esp + 0xac], ebp
jne 0x46a372
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x46a3e2
lea ecx, [esp + 0x50]
call fcn.0042c120
cmp dword [esp + 0x7c], ebp
jne 0x46a3d3
lea ecx, [esp + 0xe8]
mov byte [esp + 0x100], 2
call fcn.0044eec0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x100], 1
call fcn.0044eec0
lea ecx, [esp + 0x30]
mov byte [esp + 0x100], 0
call fcn.0044eec0
lea ecx, [esp + 0x108]
mov dword [esp + 0x100], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
jmp 0x46a305