Function at 0x402060
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x64ef44
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
push ebx
mov ebx, dword [0x6a7a14]
push ebp
mov ebp, dword [esp + 0x16c]
push esi
push edi
push 0
push 0
mov eax, ebp
call fcn.00587150
push 0x19
xor esi, esi
push str._SUBURBAN_ALMANAC_PLANTS_
lea ecx, [esp + 0x30]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], esi
mov byte [esp + 0x34], 0
call fcn.00404330
mov edx, 0x9f
push 0x2b
lea ecx, [edx + 0x36]
lea eax, [esp + 0x4c]
mov dword [esp + 0x16c], esi
call fcn.005643d0
mov ecx, dword [eax]
mov esi, dword [0x6a75c8]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x20], edx
lea edx, [esp + 0x28]
lea edi, [esp + 0x64]
call fcn.00519520
mov byte [esp + 0x168], 1
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
mov ecx, edi
push ecx
mov ecx, esi
call edx
cdq
sub eax, edx
mov edx, dword [esi]
mov edx, dword [edx + 0x28]
mov ecx, eax
sar ecx, 1
mov eax, 0x190
sub eax, ecx
lea ecx, [ebp + 0x20]
push ecx
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
push ecx
push 0x30
push eax
push ebp
mov ecx, esi
call edx
mov esi, 0x10
cmp dword [esp + 0x7c], esi
jb 0x402155
mov eax, dword [esp + 0x68]
push eax
call fcn.0061c19a
add esp, 4
mov dword [esp + 0x168], 0xffffffff
cmp dword [esp + 0x40], esi
jb 0x402173
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0061c19a
add esp, 4
mov ebx, dword [esp + 0x170]
mov edx, dword [ebx + 0x16c]
mov eax, dword [edx + 0x320]
mov ecx, dword [eax + 0xe0]
mov eax, dword [eax + 0xe4]
push eax
push ecx
push ebx
call fcn.00403940
xor edi, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x10], edi
jmp 0x4021b7
mov ebx, dword [esp + 0x170]
cmp edi, 0x30
jne 0x4021c9
lea esi, [edi - 0x1c]
mov dword [esp + 0x24], 0x17
jmp 0x4021f3
mov esi, edi
and esi, 0x80000007
jns 0x4021d8
dec esi
or esi, 0xfffffff8
inc esi
mov eax, edi
imul esi, esi, 0x34
cdq
and edx, 7
add eax, edx
sar eax, 3
imul eax, eax, 0x4e
add esi, 0x1a
add eax, 0x5c
mov dword [esp + 0x24], eax
cmp edi, 0x28
mov eax, dword [ebx + 0x16c]
mov dword [esp + 0x80], esi
jne 0x402217
mov eax, dword [eax + 0x82c]
cmp dword [eax + 0x1c0], 0
setg al
jmp 0x402224
mov ebx, edi
mov edi, eax
call fcn.00453b20
mov edi, dword [esp + 0x10]
test al, al
je 0x40229c
cmp edi, 0x30
jne 0x402253
cmp dword [esp + 0x44], edi
jne 0x402246
mov ecx, dword [esp + 0x24]
mov ebx, dword [0x6a767c]
push ecx
push esi
mov eax, ebp
call fcn.00587150
mov edx, dword [esp + 0x24]
mov ebx, dword [0x6a767c]
push edx
jmp 0x402294
fldz
push 0
push 1
push ecx
fstp dword [esp]
push 0xffffffffffffffff
fild dword [esp + 0x34]
push edi
sub esp, 8
mov ecx, 0xff
fstp dword [esp + 4]
fild dword [esp + 0x9c]
fstp dword [esp]
push ebp
call fcn.004876f0
add esp, 0x20
cmp dword [esp + 0x44], edi
jne 0x40229c
mov eax, dword [esp + 0x24]
mov ebx, dword [0x6a7afc]
push eax
push esi
mov eax, ebp
call fcn.00587150
add edi, 1
cmp edi, 0x35
mov dword [esp + 0x10], edi
jl 0x4021b0
mov ecx, dword [esp + 0x170]
mov ecx, dword [ecx + 0x194]
cmp ecx, 0x10
je 0x4023a0
nop
nop
nop
je 0x4023a0
cmp ecx, 0x2b
je 0x4023a0
nop
nop
nop
jne 0x402347
mov ebx, dword [0x6a73cc]
push 0x6b
push 0x209
mov eax, ebp
call fcn.00587150
mov edx, dword [esp + 0x170]
mov eax, dword [edx + 0x16c]
call fcn.00554f90
test al, al
je 0x40241d
push 0x1f4
push 0x18d
push 0
push 0x1db
mov esi, ebp
call fcn.00587790
fld dword [ebp + 0xc]
fsub qword [0x67a0c0]
mov eax, dword [esp + 0x170]
push 1
push ebp
fstp dword [ebp + 0xc]
mov ecx, dword [eax + 0x16c]
mov edx, dword [ecx + 0x818]
push edx
jmp 0x402405
mov eax, ecx
call fcn.00467e60
test al, al
jne 0x40238a
cmp ecx, 0xb
je 0x40238a
cmp ecx, 0x19
je 0x40238a
cmp ecx, 0x21
push 0x6b
mov eax, ebp
push 0x209
jne 0x40237a
mov ebx, dword [0x6a7760]
call fcn.00587150
jmp 0x40241d
mov ebx, dword [0x6a7848]
call fcn.00587150
jmp 0x40241d
mov ebx, dword [0x6a7704]
push 0x6b
push 0x209
mov eax, ebp
call fcn.00587150
jmp 0x40241d
mov ebx, dword [0x6a797c]
push 0x6b
push 0x209
mov eax, ebp
call fcn.00587150
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 0x16c]
call fcn.00554f90
test al, al
je 0x40241d
push 0x1f4
push 0x18d
push 0
push 0x1db
mov esi, ebp
call fcn.00587790
fld dword [ebp + 0xc]
fsub qword [0x67a0c0]
mov ecx, dword [esp + 0x170]
push 0
push ebp
fstp dword [ebp + 0xc]
mov edx, dword [ecx + 0x16c]
mov eax, dword [edx + 0x818]
push eax
call fcn.00469de0
fld dword [ebp + 0xc]
fadd qword [0x67a0c0]
mov ecx, ebp
fstp dword [ebp + 0xc]
call fcn.00587760
mov ecx, dword [esp + 0x170]
cmp dword [ecx + 0x19c], 0
je 0x40248f
push ebp
lea edi, [esp + 0xf8]
call fcn.005869b0
mov edx, dword [esp + 0x170]
mov dword [esp + 0x168], 2
mov eax, dword [edx + 0x19c]
fild dword [eax + 8]
mov ecx, edi
push ecx
push eax
fadd dword [esp + 0x104]
fstp dword [esp + 0x104]
fild dword [eax + 0xc]
fadd dword [esp + 0x108]
fstp dword [esp + 0x108]
call fcn.00465a90
mov ecx, edi
mov dword [esp + 0x168], 0xffffffff
call fcn.00586b10
mov ebx, dword [0x6a74a4]
push 0x56
push 0x1cb
mov eax, ebp
call fcn.00587150
mov edx, dword [esp + 0x170]
mov eax, dword [edx + 0x194]
push 0xffffffffffffffff
jmp 0x7e1060