Function at 0x411260
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x493944
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x100
push ebx
push ebp
push esi
push edi
mov ebp, ecx
mov eax, dword [0x4be818]
xor edi, edi
mov dword [esp + 0x118], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
push edi
lea ecx, [esp + 0x44]
mov byte [esp + 0x11c], 2
call fcn.00431a20
push edi
lea ecx, [esp + 0x58]
mov byte [esp + 0x11c], 3
call fcn.00431a20
lea ecx, [esp + 0x74]
mov byte [esp + 0x118], 4
call fcn.0042c2e0
mov eax, dword [0x4be818]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10c]
mov byte [esp + 0x118], 7
push eax
call fcn.00409c20
add esp, 4
push 0x4b82f4
lea ecx, [esp + 0x1c]
push eax
push ecx
mov byte [esp + 0x124], 8
call fcn.004846c8
lea ecx, [esp + 0x10c]
mov byte [esp + 0x118], 0xa
call fcn.00484433
mov edx, dword [esp + 0x120]
push 0x4ba774
push edx
call fcn.0046f2f7
add esp, 8
test eax, eax
jne 0x41134f
push 0x4ba770
lea ecx, [esp + 0x124]
call fcn.004845bc
push edi
lea ecx, [esp + 0x124]
call fcn.00484863
mov esi, eax
mov al, byte [esp + 0x3b]
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x20]
push ebx
call fcn.0041d200
test al, al
je 0x4113ae
mov edi, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x20]
call fcn.0041d1e0
lea eax, [esp + 0x40]
push 1
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x80]
mov byte [esp + 0x124], 0xb
call fcn.0042c370
and eax, 0xff
xor edi, edi
mov esi, eax
mov eax, dword [esp + 0x20]
cmp eax, edi
mov byte [esp + 0x118], 0xa
je 0x411404
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4113fb
cmp al, 0xff
je 0x4113fb
dec al
mov byte [ecx], al
jmp 0x411404
push ecx
call fcn.004849c1
add esp, 4
or ebx, 0xffffffff
lea ecx, [esp + 0x120]
push ebx
call fcn.004848b2
cmp esi, edi
jne 0x41150d
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 7
call fcn.00484433
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 6
call fcn.00484433
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 5
call fcn.00484433
push 1
lea ecx, [esp + 0xfc]
mov byte [esp + 0x11c], 0xe
call fcn.0041cfc0
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x11c], 0xd
call fcn.0041cfc0
mov eax, dword [esp + 0xd0]
mov byte [esp + 0x118], 0xc
cmp eax, edi
je 0x4114df
mov eax, dword [esp + 0xb0]
push edi
mov ecx, eax
add eax, 0x20
mov dword [esp + 0xb4], eax
call fcn.0041d570
mov eax, dword [esp + 0xd0]
dec eax
mov dword [esp + 0xd0], eax
je 0x4114ca
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
cmp edx, eax
jne 0x4114d6
lea ecx, [esp + 0xa4]
call fcn.0041d320
cmp dword [esp + 0xd0], edi
jne 0x41148e
mov eax, dword [esp + 0xa0]
mov byte [esp + 0x118], 4
cmp eax, edi
je 0x411607
lea ecx, [esp + 0x74]
call fcn.0041d010
cmp dword [esp + 0xa0], edi
jne 0x4114f6
jmp 0x411607
lea ecx, [esp + 0x40]
call fcn.004321c0
cmp eax, 6
je 0x411665
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 7
call fcn.00484433
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 6
call fcn.00484433
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 5
call fcn.00484433
push 1
lea ecx, [esp + 0xfc]
mov byte [esp + 0x11c], 0x11
call fcn.0041cfc0
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x11c], 0x10
call fcn.0041cfc0
mov eax, dword [esp + 0xd0]
mov byte [esp + 0x118], 0xf
cmp eax, edi
je 0x4115e2
mov eax, dword [esp + 0xb0]
push edi
mov ecx, eax
add eax, 0x20
mov dword [esp + 0xb4], eax
call fcn.0041d570
mov eax, dword [esp + 0xd0]
dec eax
mov dword [esp + 0xd0], eax
je 0x4115cd
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
cmp eax, ecx
jne 0x4115d9
lea ecx, [esp + 0xa4]
call fcn.0041d320
cmp dword [esp + 0xd0], edi
jne 0x411591
mov eax, dword [esp + 0xa0]
mov byte [esp + 0x118], 4
cmp eax, edi
je 0x411607
lea ecx, [esp + 0x74]
call fcn.0041d010
cmp dword [esp + 0xa0], edi
jne 0x4115f5
lea ecx, [esp + 0x54]
mov byte [esp + 0x118], 3
call fcn.00431f40
lea ecx, [esp + 0x40]
mov byte [esp + 0x118], 2
call fcn.00431f40
lea ecx, [esp + 0x34]
mov byte [esp + 0x118], 1
call fcn.00484433
lea ecx, [esp + 0x2c]
mov byte [esp + 0x118], 0
call fcn.00484433
lea ecx, [esp + 0x120]
mov dword [esp + 0x118], ebx
call fcn.00484433
xor eax, eax
jmp 0x411bcc
lea ecx, [esp + 0x40]
xor esi, esi
call fcn.00432cb0
test eax, eax
jbe 0x411696
push esi
lea ecx, [esp + 0x44]
call fcn.00432d60
push eax
lea ecx, [esp + 0x58]
call fcn.004320c0
lea ecx, [esp + 0x40]
inc esi
call fcn.00432cb0
cmp esi, eax
jb 0x411674
mov ecx, dword [ebp + 0x620]
xor eax, eax
cmp ecx, edi
jbe 0x4116bc
xor ecx, ecx
mov edx, dword [ebp + 0x61c]
inc eax
mov dword [edx + ecx + 0x3c], edi
mov edx, dword [ebp + 0x620]
add ecx, 0x78
cmp eax, edx
jb 0x4116a4
mov ecx, dword [ebp + 0x628]
xor eax, eax
cmp ecx, edi
jbe 0x4116e2
xor ecx, ecx
mov edx, dword [ebp + 0x624]
inc eax
mov dword [edx + ecx + 0xc], edi
mov edx, dword [ebp + 0x628]
add ecx, 0x10
cmp eax, edx
jb 0x4116ca
xor esi, esi
lea ecx, [esp + 0x40]
mov dword [esp + 0x50], esi
call fcn.00432cb0
test eax, eax
jbe 0x411866
push esi
lea ecx, [esp + 0x44]
call fcn.00432d60
push eax
lea ecx, [esp + 0x58]
call fcn.004320c0
push str.amount
lea ecx, [esp + 0x58]
call fcn.00432ed0
push eax
call fcn.0040ab30
add esp, 4
lea ecx, [esp + 0x54]
mov ebx, eax
push 0x4ba740
call fcn.00432ed0
push eax
call fcn.0040ab30
add esp, 4
dec eax
je 0x41178a
sub eax, 2
jne 0x41184e
push 0x4ba748
lea ecx, [esp + 0x58]
call fcn.00432ed0
push eax
call fcn.0040ab30
mov ecx, dword [ebp + 0x628]
add esp, 4
cmp eax, ecx
jae 0x41184e
mov ecx, dword [ebp + 0x624]
shl eax, 4
mov dword [ecx + eax + 0xc], ebx
mov eax, dword [esp + 0x30]
add eax, ebx
mov dword [esp + 0x30], eax
jmp 0x41184e
push str.level
lea ecx, [esp + 0x58]
call fcn.00432ed0
push eax
call fcn.0040ab30
add esp, 4
lea ecx, [esp + 0x54]
mov edi, eax
push 0x4ba764
call fcn.00432ed0
push eax
call fcn.0040ab30
mov edx, dword [ebp + 0x61c]
lea ecx, [eax + eax*2]
add esp, 4
lea esi, [ecx + ecx*4]
shl esi, 3
lea ecx, [esi + edx + 0x3c]
mov edx, dword [esi + edx + 0x3c]
add edx, ebx
test edi, edi
mov dword [ecx], edx
je 0x411840
mov ecx, dword [ebp + 0x61c]
mov edx, dword [esi + ecx + 0x30]
lea ecx, [esi + ecx + 0x30]
test edx, edx
jne 0x411840
push eax
lea edx, [esp + 0x14]
push 0x4b8278
push edx
mov dword [ecx], edi
call fcn.004827a3
mov eax, dword [ebp + 0x61c]
add esp, 0xc
add eax, esi
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x20]
push str._d__d__s
push ecx
call fcn.004827a3
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add esp, 0x14
push edx
push eax
push ecx
push str.PLANTS
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x50]
add eax, ebx
mov dword [esp + 0x3c], eax
inc esi
lea ecx, [esp + 0x40]
mov dword [esp + 0x50], esi
call fcn.00432cb0
cmp esi, eax
jb 0x4116f9
xor edi, edi
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x18]
mov dword [ebp + 0x6c], edx
mov dword [ebp + 0x70], eax
mov byte [esp + 0x118], 7
call fcn.00484433
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 6
call fcn.00484433
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 5
call fcn.00484433
mov eax, dword [esp + 0xfc]
mov byte [esp + 0x118], 0x12
cmp eax, edi
je 0x4118d7
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4118ce
cmp al, 0xff
je 0x4118ce
dec al
mov byte [ecx], al
jmp 0x4118d7
push ecx
call fcn.004849c1
add esp, 4
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xfc], edi
cmp eax, edi
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], edi
je 0x411914
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x41190b
cmp al, 0xff
je 0x41190b
dec al
mov byte [ecx], al
jmp 0x411914
push ecx
call fcn.004849c1
add esp, 4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xd8], edi
cmp eax, edi
mov dword [esp + 0xdc], edi
mov dword [esp + 0xe0], edi
je 0x411a57
mov ecx, dword [esp + 0xb0]
push 1
mov eax, ecx
add ecx, 0x20
mov dword [esp + 0xb4], ecx
lea ecx, [eax + 0xc]
call fcn.0041cfc0
mov eax, dword [esp + 0xd0]
dec eax
mov dword [esp + 0xd0], eax
je 0x41197c
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
cmp ecx, eax
jne 0x411a4a
mov eax, dword [esp + 0xb4]
mov ecx, eax
add eax, 4
mov dword [esp + 0xb4], eax
mov ecx, dword [ecx]
push ecx
call fcn.004849c1
mov eax, dword [esp + 0xd4]
add esp, 4
cmp eax, edi
jne 0x411a0a
lea ecx, [esp + 0x1c]
call fcn.0041d4b0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xa8], eax
push edx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc8], esi
call fcn.004849c1
add esp, 4
xor edi, edi
jmp 0x411a4a
mov eax, dword [esp + 0xb4]
push eax
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0041d4c0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], eax
cmp dword [esp + 0xd0], edi
jne 0x411938
mov eax, dword [esp + 0xa0]
mov byte [esp + 0x118], 4
cmp eax, edi
je 0x411b6c
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0xa0]
add ecx, 4
dec eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0xa0], eax
je 0x411a9a
cmp ecx, dword [esp + 0x7c]
jne 0x411b5f
mov ecx, dword [esp + 0x84]
mov eax, ecx
add ecx, 4
mov dword [esp + 0x84], ecx
mov eax, dword [eax]
push eax
call fcn.004849c1
mov eax, dword [esp + 0xa4]
add esp, 4
cmp eax, edi
jne 0x411b25
lea ecx, [esp + 0x64]
call fcn.0041d4b0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x80], edx
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x78], eax
push edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], esi
call fcn.004849c1
add esp, 4
xor edi, edi
jmp 0x411b5f
mov eax, dword [esp + 0x84]
push eax
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x24]
call fcn.0041d4c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
cmp dword [esp + 0xa0], edi
jne 0x411a6e
lea ecx, [esp + 0x54]
mov byte [esp + 0x118], 3
call fcn.00431f40
lea ecx, [esp + 0x40]
mov byte [esp + 0x118], 2
call fcn.00431f40
lea ecx, [esp + 0x34]
mov byte [esp + 0x118], 1
call fcn.00484433
lea ecx, [esp + 0x2c]
mov byte [esp + 0x118], 0
call fcn.00484433
lea ecx, [esp + 0x120]
mov dword [esp + 0x118], 0xffffffff
call fcn.00484433
mov eax, 1
mov ecx, dword [esp + 0x110]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10c
ret 4