Function at 0x4093c0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x54
mov eax, dword [0x4464c4]
push ebx
push esi
push edi
push ebp
xor edi, edi
push edi
push eax
call sub.CNCS232.dll_Ordinal_191
mov dword [esp + 0x2c], eax
cmp eax, edi
je 0x409a0c
mov ecx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
call dword [sym.imp.CNCS232.dll_Ordinal_387]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
call dword [sym.imp.CNCS232.dll_Ordinal_375]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x20]
lea eax, [ebx - 1]
mov dword [esp + 0x38], eax
lea eax, [esi - 1]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
and eax, 4
mov dword [esp + 0x48], eax
cmp eax, edi
je 0x409443
mov ax, word [0x4452c4]
mov edx, dword [0x4452d2]
mov cx, word [0x4452c2]
push eax
push ecx
push edx
call fcn.00438423
push 0xd
mov eax, dword [0x4464c4]
push eax
call sub.CNCS232.dll_Ordinal_52
test byte [0x445270], 2
je 0x409467
test byte [esp + 0x68], 8
je 0x4094c8
call fcn.0040d020
jmp 0x4094c8
test byte [0x445270], 4
jne 0x4094c8
movsx eax, word [0x4452c2]
add eax, ebx
js 0x4094c8
mov ax, word [0x445268]
cmp word [0x4452c2], ax
jge 0x4094c8
movsx eax, word [0x4452c4]
add eax, esi
js 0x4094c8
mov ax, word [0x4452c4]
cmp word [0x44526a], ax
jle 0x4094c8
mov eax, dword [0x44526c]
mov ecx, dword [esp + 0x34]
or eax, 0x2000000
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
mov eax, dword [0x4464c4]
push 0
push 0
push eax
call sub.CNCS232.dll_Ordinal_140
mov eax, dword [esp + 0x68]
and eax, 0x80
mov dword [esp + 0x40], eax
jne 0x409530
test byte [0x445270], 0x20
je 0x4094f3
push 0
mov eax, dword [0x4464c4]
push 0
push 0
push 0
push eax
call sub.CNCS232.dll_Ordinal_163
test byte [esp + 0x69], 1
push 0
jne 0x409509
mov eax, dword [0x4464c4]
push eax
call sub.CNCS232.dll_Ordinal_91
jmp 0x409528
push 0x3fff
mov eax, dword [0x4464c4]
push 0x3fff
push 0xffffc001
push 0xffffc001
push eax
call sub.CNCS232.dll_Ordinal_92
mov dword [esp + 0x30], 1
call fcn.0040d490
mov dword [esp + 0x3c], 0
cmp dword [0x44527e], 0
mov esi, dword [0x44528a]
jle 0x40999b
xor eax, eax
mov ax, word [esi + 2]
cmp dword [0x445060], eax
jg 0x409562
xor edi, edi
jmp 0x409576
mov ecx, dword [0x445064]
xor edx, edx
mov dx, word [ecx + eax*2]
mov eax, dword [0x445068]
mov edi, dword [eax + edx*4]
test edi, edi
je 0x409984
mov eax, dword [edi + 0x14]
test eax, eax
je 0x409984
xor ebx, ebx
mov dword [esp + 0x44], eax
mov bx, word [edi + 2]
cmp ebx, 2
jl 0x4095ac
test byte [eax + 0x12], 2
jne 0x4095ac
mov eax, dword [0x44527e]
mov dword [esp + 0x3c], eax
jmp 0x409984
movsx eax, word [esi + 4]
movsx ecx, word [0x4452c2]
sub eax, ecx
mov dword [esp + 0x14], eax
movsx ecx, word [0x4452c4]
movsx eax, word [esi + 6]
sub eax, ecx
test byte [0x445270], 0x20
mov dword [esp + 0x18], eax
jne 0x4095f9
mov eax, dword [esp + 0x38]
add eax, 0x60
cmp eax, dword [esp + 0x14]
jle 0x409984
mov eax, dword [esp + 0x34]
add eax, 0x10
cmp eax, dword [esp + 0x18]
jle 0x409984
test byte [edi + 0x1c], 2
jne 0x409617
test byte [edi + 4], 1
jne 0x40960e
test byte [0x445271], 4
je 0x409617
push edi
call fcn.00407b30
add esp, 4
mov word [esp + 0x12], 0
test ebx, ebx
je 0x409661
cmp ebx, 1
je 0x4096d2
mov ax, word [esi]
mov ecx, dword [0x4452d2]
push eax
push ecx
call fcn.004383a0
mov dword [esp + 0x28], eax
test eax, eax
je 0x409984
add eax, 0x4c
lea ecx, [esp + 0x14]
push eax
xor ebp, ebp
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov dword [esp + 0x24], ebp
jmp 0x40972a
mov ecx, dword [edi + 0x14]
mov ax, word [ecx + 8]
test ax, ax
jl 0x40967a
movsx eax, ax
add eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
jmp 0x40968a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
movsx edx, word [ecx + 8]
add dword [esp + 0x14], edx
mov ax, word [ecx + 0xa]
test ax, ax
jl 0x4096a0
movsx eax, ax
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
jmp 0x4096b0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
movsx edx, word [ecx + 0xa]
add dword [esp + 0x18], edx
xor ebp, ebp
xor eax, eax
mov bp, word [ecx + 4]
cmp word [ecx + 0x14], 3
mov ax, word [ecx + 6]
mov dword [esp + 0x24], eax
jne 0x40972a
mov ax, word [ecx + 0x16]
mov word [esp + 0x12], ax
jmp 0x40972a
mov eax, dword [edi + 0x14]
lea ecx, [esp + 0x4c]
push ecx
mov edx, dword [0x445090]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov ax, word [eax + 8]
mov word [esp + 0x16], ax
mov eax, dword [esp + 0x16]
push eax
push edx
call sub.CNCS232.dll_Ordinal_109
movsx eax, word [esp + 0x56]
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
movsx eax, word [esp + 0x58]
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov bp, word [ecx + 4]
xor ecx, ecx
mov cx, word [eax + 6]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x40], 0
jne 0x409871
mov ax, word [0x445270]
and ax, 0x20
jne 0x409757
cmp dword [esp + 0x1c], 0xffffffa0
jl 0x409871
cmp dword [esp + 0x20], 0xfffffff0
jl 0x409871
test ax, ax
je 0x409777
movsx eax, word [0x4452c4]
movsx ecx, word [0x4452c2]
lea edx, [esp + 0x14]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
xor eax, eax
cmp ebp, 1
jne 0x40978b
mov dword [esp + 0x30], 0
mov eax, 3
cmp dword [esp + 0x30], 0
jne 0x4097e3
test ebx, ebx
je 0x4097bf
cmp ebp, 3
je 0x4097bf
cmp dword [esp + 0x24], 0
jne 0x4097bf
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x16]
push eax
push ecx
push edx
mov eax, dword [0x4464c4]
push eax
call sub.CNCS232.dll_Ordinal_93
jmp 0x4097e3
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
dec ax
push eax
mov eax, dword [esp + 0x24]
dec ax
push eax
push ecx
push edx
mov eax, dword [0x4464c4]
push eax
call sub.CNCS232.dll_Ordinal_92
cmp ebp, 2
jne 0x409849
mov dword [esp + 0x30], 0
test ebx, ebx
je 0x409817
cmp dword [esp + 0x24], 0
jne 0x409817
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x12]
push eax
push ecx
mov eax, dword [0x4464c4]
push edx
push eax
call sub.CNCS232.dll_Ordinal_94
jmp 0x409849
mov eax, dword [esp + 0x18]
push 2
add eax, 6
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jl 0x40982a
mov eax, ecx
dec ax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
dec ax
push eax
push ecx
push edx
mov eax, dword [0x4464c4]
push eax
call sub.CNCS232.dll_Ordinal_92
test byte [0x445270], 0x20
je 0x409871
movsx eax, word [0x4452c4]
neg eax
lea ecx, [esp + 0x14]
push eax
movsx eax, word [0x4452c2]
neg eax
push eax
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
cmp ebp, 3
jne 0x409892
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push ecx
push edx
push eax
call fcn.0040d4c0
add esp, 0x10
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x14], eax
jg 0x409984
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x18], eax
jg 0x409984
cmp dword [esp + 0x1c], 0
jl 0x409984
cmp dword [esp + 0x20], 0
jl 0x409984
test ebx, ebx
je 0x4098eb
cmp ebx, 1
je 0x40995c
cmp dword [esp + 0x28], 0
je 0x409984
mov eax, dword [esp + 0x28]
push eax
call fcn.004383de
jmp 0x409984
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 8]
mov eax, edx
mov ebx, dword [edi + 0xc]
and eax, 0x20000000
add ecx, 0xc
shr eax, 0x1d
push eax
push ebx
mov eax, edx
and edx, 0x10000000
shr edx, 0x1c
and eax, 0xffff
push eax
push edx
movsx ebx, word [ecx - 4]
movsx eax, word [ecx - 2]
push eax
push ebx
movsx edx, word [esi + 6]
movsx eax, word [0x4452c4]
sub edx, eax
movsx ebx, word [0x4452c2]
movsx eax, word [esi + 4]
push edx
sub eax, ebx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
call fcn.00408900
lea ecx, [esp + 0x3c]
add esp, 0x28
mov edx, dword [0x4464c4]
push ecx
push edx
call sub.CNCS232.dll_Ordinal_56
jmp 0x409984
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x4c]
push 0
push edx
push eax
mov dx, word [ecx + 8]
mov eax, dword [0x4464c4]
push edx
push eax
call sub.CNCS232.dll_Ordinal_174
add esi, 0xc
inc dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
cmp dword [0x44527e], eax
jg 0x409550
cmp dword [0x445292], 0
je 0x4099c0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
call fcn.00409150
add esp, 0x10
test byte [0x445270], 0x20
je 0x4099e8
mov ax, word [0x4452c4]
push 0
mov cx, word [0x4452c2]
push 0
push eax
mov edx, dword [0x4464c4]
push ecx
push edx
call sub.CNCS232.dll_Ordinal_163
test byte [esp + 0x68], 2
jne 0x4099fa
mov eax, dword [0x4464c4]
push eax
call sub.CNCS232.dll_Ordinal_120
cmp dword [esp + 0x48], 0
je 0x409a0c
mov eax, dword [0x4452d2]
push eax
call fcn.004385bb
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x54
ret