Function at 0x44cfc0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 8
mov eax, 0x9467f4
mov byte [eax], 0
add eax, 0x44
cmp eax, 0x94687c
jl 0x44cfc8
push esi
push 0x9ecc90
call fcn.0040ff60
push str.progs.dat
call fcn.0040e300
mov esi, eax
add esp, 8
test esi, esi
jne 0x44d000
push str.PR_LoadProgs:_couldnt_load_progs.dat
call fcn.0047c340
add esp, 4
mov eax, dword [esi]
mov dword [0x9ecc68], eax
mov eax, dword [0xc37590]
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
push str.Programs_occupy__iK._n
call fcn.0040f900
mov eax, dword [0xc37590]
add esp, 8
xor esi, esi
test eax, eax
jle 0x44d052
mov ecx, dword [0x9ecc68]
mov dl, byte [ecx + esi]
push edx
push 0x9ecc90
call fcn.0040ff70
mov eax, dword [0xc37590]
add esp, 8
inc esi
cmp esi, eax
jl 0x44d031
xor esi, esi
mov eax, dword [0x9ecc68]
mov ecx, dword [esi + eax]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecc68]
add esi, 4
add esp, 4
cmp esi, 0x3c
mov dword [esi + edx - 4], eax
jl 0x44d054
mov eax, dword [0x9ecc68]
mov eax, dword [eax]
cmp eax, 6
je 0x44d094
push 6
push eax
push str.progs.dat_has_wrong_version_number___i_should_be__i_
call fcn.0047c340
add esp, 0xc
mov ecx, dword [0x9ecc68]
mov eax, dword [ecx + 4]
mov ecx, 1
cmp eax, 0x1727
jne 0x44d0be
push str.Old_progs.dat_found__compatibility_turned_on._n
mov dword [0x9ecc9c], ecx
call fcn.0040f900
add esp, 4
jmp 0x44d108
cmp eax, 0x693c
jne 0x44d0de
push str.Beta_progs.dat_found__beta_compatibility_turned_on._n
mov dword [0x9ecc9c], 2
call fcn.0040f900
add esp, 4
jmp 0x44d108
cmp eax, 0x69d6
jne 0x44d0fa
push str.Loser_Arena_progs.dat_found__beta_compatibility_turned_on._n
mov dword [0x9ecc9c], ecx
call fcn.0040f900
add esp, 4
jmp 0x44d108
push eax
push str.progs.dat_CRC_is__i_and_no_sir_i_dont_like_it._n_nprogs.dat_system_vars_have_been_modified__progdefs.h_is_out_of_date
call fcn.0047c340
add esp, 8
mov ecx, dword [0x9ecc68]
xor esi, esi
mov eax, dword [ecx + 0x20]
add eax, ecx
mov dword [0x9ecce0], eax
mov edx, dword [ecx + 0x28]
add edx, ecx
mov dword [0x9ecc98], edx
mov eax, dword [ecx + 0x10]
add eax, ecx
mov dword [0x9ecc54], eax
mov edx, dword [ecx + 0x18]
add edx, ecx
mov dword [0x9ecc88], edx
mov eax, dword [ecx + 8]
add eax, ecx
mov dword [0x9ecc48], eax
mov edx, dword [ecx + 0x30]
add edx, ecx
mov dword [0x9ecc44], edx
mov dword [0x9ecc5c], edx
mov edx, dword [ecx + 0x38]
lea edx, [edx*4 + 0x80]
mov dword [0x9ecc50], edx
mov edx, dword [ecx + 0xc]
test edx, edx
jle 0x44d1f2
jmp 0x44d177
mov eax, dword [0x9ecc48]
mov ax, word [eax + esi*8]
push eax
call dword [0xc37598]
mov ecx, dword [0x9ecc48]
mov word [ecx + esi*8], ax
mov edx, dword [0x9ecc48]
mov ax, word [edx + esi*8 + 2]
push eax
call dword [0xc37598]
mov ecx, dword [0x9ecc48]
mov word [ecx + esi*8 + 2], ax
mov edx, dword [0x9ecc48]
mov ax, word [edx + esi*8 + 4]
push eax
call dword [0xc37598]
mov ecx, dword [0x9ecc48]
mov word [ecx + esi*8 + 4], ax
mov edx, dword [0x9ecc48]
mov ax, word [edx + esi*8 + 6]
push eax
call dword [0xc37598]
mov ecx, dword [0x9ecc48]
add esp, 0x10
mov word [ecx + esi*8 + 6], ax
mov ecx, dword [0x9ecc68]
inc esi
cmp esi, dword [ecx + 0xc]
jl 0x44d172
mov edx, dword [0x9eccdc]
push ebx
push ebp
push edi
xor ebp, ebp
xor edi, edi
mov dword [0x9ed500], edi
mov dword [0x9ed920], ebp
fld dword [edx + 8]
fcomp dword [0x497058]
mov ebx, dword [0x4a78d0]
fnstsw ax
test ah, 0x40
jne 0x44d238
cmp ebx, 1
jle 0x44d25c
mov eax, 0x4a70ac
lea edx, [ebx - 1]
mov dword [eax], ebp
add eax, 0x10
dec edx
jne 0x44d22e
jmp 0x44d25c
cmp ebx, 1
jle 0x44d25c
mov edx, 0x4a70ac
lea esi, [ebx - 1]
mov eax, dword [edx - 0xc]
cmp eax, edi
mov dword [edx], eax
jle 0x44d250
mov edi, eax
add edx, 0x10
dec esi
jne 0x44d245
mov dword [0x9ed500], edi
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x14], ebp
cmp eax, ebp
jle 0x44d3ae
xor esi, esi
mov eax, dword [0x9ecce0]
mov ecx, dword [esi + eax]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecce0]
mov dword [esi + edx], eax
mov eax, dword [0x9ecce0]
mov ecx, dword [esi + eax + 4]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecce0]
mov dword [esi + edx + 4], eax
mov eax, dword [0x9ecce0]
mov ecx, dword [esi + eax + 0x10]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecce0]
mov dword [esi + edx + 0x10], eax
mov eax, dword [0x9ecce0]
mov ecx, dword [esi + eax + 0x14]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecce0]
mov dword [esi + edx + 0x14], eax
mov eax, dword [0x9ecce0]
mov ecx, dword [esi + eax + 0x18]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecce0]
mov dword [esi + edx + 0x18], eax
mov eax, dword [0x9ecce0]
mov ecx, dword [esi + eax + 8]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecce0]
add esp, 0x18
mov dword [esi + edx + 8], eax
mov eax, dword [0x9eccdc]
fld dword [eax + 8]
fcomp dword [0x497058]
fnstsw ax
test ah, 0x40
jne 0x44d385
mov ecx, dword [0x9ecce0]
mov eax, dword [esi + ecx]
test eax, eax
jge 0x44d385
mov ebp, dword [esi + ecx + 0x10]
mov ecx, dword [0x9ecc98]
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [0x4a78d0]
mov edi, 1
add ebp, ecx
cmp eax, edi
jle 0x44d372
mov ebx, 0x4a70a4
mov ecx, dword [ebx]
push ecx
push ebp
call fcn.0040cc50
add esp, 8
test eax, eax
je 0x44d403
mov eax, dword [0x4a78d0]
inc edi
add ebx, 0x10
cmp edi, eax
jl 0x44d351
mov eax, dword [esp + 0x10]
push ebp
push eax
push str.Can_not_assign_builtin_number__i_to__s___function_unknown_n
call fcn.0040f900
add esp, 0xc
mov ebx, dword [0x4a78d0]
mov ecx, dword [0x9ecc68]
mov eax, dword [esp + 0x14]
inc eax
add esi, 0x24
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x14], eax
cmp eax, edx
jl 0x44d26d
mov edi, dword [0x9ed500]
mov edx, dword [0x9eccdc]
fld dword [edx + 8]
fcomp dword [0x497058]
fnstsw ax
test ah, 0x40
jne 0x44d46f
mov ebp, 1
cmp ebx, ebp
jle 0x44d46f
mov esi, 0x4a70a0
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x44d454
mov edx, dword [esi]
test edx, edx
je 0x44d454
mov eax, 1
cmp ebx, eax
jle 0x44d451
mov ecx, 0x4a70ac
cmp dword [ecx], edx
je 0x44d423
inc eax
add ecx, 0x10
cmp eax, ebx
jl 0x44d3f5
jmp 0x44d451
mov ebx, dword [0x4a78d0]
cmp edi, ebx
jge 0x44d372
mov edx, dword [esp + 0x10]
shl edi, 4
mov dword [edi + 0x4a709c], edx
jmp 0x44d38b
cmp eax, ebx
jge 0x44d451
mov ecx, dword [esi + 4]
shl eax, 4
mov eax, dword [eax + 0x4a7094]
push eax
push ecx
push edx
push str.Can_not_assign_default_builtin_number__i_to__s___number_is_already_assigned_to__s_n
call fcn.0040f900
mov edi, dword [0x9ed500]
mov ebx, dword [0x4a78d0]
add esp, 0x10
jmp 0x44d454
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0xc]
cmp eax, edi
jle 0x44d463
mov edi, eax
mov dword [0x9ed500], edi
inc ebp
add esi, 0x10
cmp ebp, ebx
jl 0x44d3da
inc edi
push str.builtins
mov dword [0x9ed500], edi
lea edx, [edi*4]
push edx
call fcn.00487d30
mov ecx, dword [0x9ed500]
mov dword [0x9ed920], eax
add esp, 8
xor eax, eax
test ecx, ecx
jle 0x44d4b6
mov edx, dword [0x9ed920]
mov ecx, dword [0x4a7098]
mov dword [edx + eax*4], ecx
mov ecx, dword [0x9ed500]
inc eax
cmp eax, ecx
jl 0x44d49c
mov eax, dword [0x9eccbc]
push 0x4a8ca4
push eax
call fcn.004106f0
mov ecx, dword [0x9ecc60]
push 0x4a8ca8
push ecx
call fcn.004106f0
mov eax, dword [0x4a78d0]
mov edi, 1
add esp, 0x10
cmp eax, edi
jle 0x44d553
mov esi, 0x4a70ac
mov ebp, 0x64
mov ebx, 0x63
mov eax, dword [esi]
test eax, eax
je 0x44d509
mov ecx, dword [0x9ed920]
mov edx, dword [esi - 4]
mov dword [ecx + eax*4], edx
cmp dword [esi - 0xc], ebp
jne 0x44d527
fild dword [esi]
mov eax, dword [0x9eccbc]
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
push edx
push eax
call fcn.004107f0
add esp, 8
cmp dword [esi - 0xc], ebx
jne 0x44d546
fild dword [esi]
mov edx, dword [0x9ecc60]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push ecx
push edx
call fcn.004107f0
add esp, 8
mov eax, dword [0x4a78d0]
inc edi
add esi, 0x10
cmp edi, eax
jl 0x44d4f7
mov eax, dword [0x9ecc68]
xor esi, esi
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x44d5bf
mov eax, dword [0x9ecc54]
mov cx, word [eax + esi*8]
push ecx
call dword [0xc37598]
mov edx, dword [0x9ecc54]
mov word [edx + esi*8], ax
mov eax, dword [0x9ecc54]
mov cx, word [eax + esi*8 + 2]
push ecx
call dword [0xc37598]
mov edx, dword [0x9ecc54]
mov word [edx + esi*8 + 2], ax
mov eax, dword [0x9ecc54]
mov ecx, dword [eax + esi*8 + 4]
push ecx
call dword [0xc375b4]
mov edx, dword [0x9ecc54]
add esp, 0xc
mov dword [edx + esi*8 + 4], eax
mov eax, dword [0x9ecc68]
inc esi
cmp esi, dword [eax + 0x14]
jl 0x44d561
mov ecx, dword [eax + 0x1c]
xor esi, esi
test ecx, ecx
jle 0x44d644
mov eax, dword [0x9ecc88]
mov cx, word [eax + esi*8]
push ecx
call dword [0xc37598]
mov edx, dword [0x9ecc88]
add esp, 4
mov word [edx + esi*8], ax
mov eax, dword [0x9ecc88]
test byte [eax + esi*8 + 1], 0x80
je 0x44d5fe
push str.PR_LoadProgs:_pr_fielddefs_i_.type__DEF_SAVEGLOBAL
call fcn.0047c340
add esp, 4
mov ecx, dword [0x9ecc88]
mov dx, word [ecx + esi*8 + 2]
push edx
call dword [0xc37598]
mov ecx, dword [0x9ecc88]
mov word [ecx + esi*8 + 2], ax
mov edx, dword [0x9ecc88]
mov eax, dword [edx + esi*8 + 4]
push eax
call dword [0xc375b4]
mov ecx, dword [0x9ecc88]
add esp, 8
mov dword [ecx + esi*8 + 4], eax
mov eax, dword [0x9ecc68]
inc esi
cmp esi, dword [eax + 0x1c]
jl 0x44d5c8
mov ecx, dword [eax + 0x34]
xor esi, esi
test ecx, ecx
jle 0x44d675
mov edx, dword [0x9ecc5c]
mov eax, dword [edx + esi*4]
push eax
call dword [0xc375b4]
mov ecx, dword [0x9ecc5c]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [0x9ecc68]
inc esi
cmp esi, dword [edx + 0x34]
jl 0x44d64d
push str.nvs_svc
call fcn.0044bd00
xor esi, esi
add esp, 4
cmp eax, esi
mov dword [0x9ee144], eax
je 0x44d6a0
xor ecx, ecx
mov cx, word [eax]
and ch, 0x7f
cmp ecx, 2
je 0x44d6a0
mov dword [0x9ee144], esi
push str.ammo_shells1
call fcn.0044bd00
push str.ammo_nails1
mov dword [0x9ecc34], eax
call fcn.0044bd00
push str.ammo_lava_nails
mov dword [0x9eccd0], eax
call fcn.0044bd00
push str.ammo_rockets1
mov dword [0x9eccc0], eax
call fcn.0044bd00
push str.ammo_multi_rockets
mov dword [0x9ecc58], eax
call fcn.0044bd00
push str.ammo_cells1
mov dword [0x9ecccc], eax
call fcn.0044bd00
push str.ammo_plasma
mov dword [0x9ecc40], eax
call fcn.0044bd00
push str.idealpitch
mov dword [0x9ecc64], eax
call fcn.0044bd00
push str.pitch_speed
mov dword [0x9ecc94], eax
call fcn.0044bd00
push str.items2
mov dword [0x9ecc84], eax
call fcn.0044bd00
push str.gravity
mov dword [0x9ecca8], eax
call fcn.0044bd00
push str.alpha
mov dword [0x9eccc8], eax
call fcn.0044bd00
push str.scale
mov dword [0x9ecc8c], eax
call fcn.0044bd00
push str.glow_color
mov dword [0x9ecc6c], eax
call fcn.0044bd00
push str.glow_size
mov dword [0x9eccd4], eax
call fcn.0044bd00
push str.EndFrame
mov dword [0x9ecca0], eax
mov dword [0x9eccc4], esi
call fcn.0044be00
add esp, 0x40
cmp eax, esi
je 0x44d7b7
sub eax, dword [0x9ecce0]
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [0x9eccc4], edx
push str.cpu_frametime
call fcn.0044bd80
add esp, 4
cmp eax, esi
mov dword [0x9ecc4c], eax
pop edi
pop ebp
pop ebx
je 0x44d7e3
xor ecx, ecx
mov cx, word [eax]
and ch, 0x7f
cmp ecx, 2
je 0x44d7e3
mov dword [0x9ecc4c], esi
push str.org_frametime
call fcn.0044bd80
add esp, 4
cmp eax, esi
mov dword [0x9ecc38], eax
je 0x44d80c
xor edx, edx
mov dx, word [eax]
and dh, 0x7f
cmp edx, 2
je 0x44d80c
mov dword [0x9ecc38], esi
pop esi
add esp, 8
ret