Function at 0x40dfb0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
test ebx, ebx
push edi
mov esi, ecx
jne 0x40dfce
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10
ret 0xc
push ebx
mov ecx, esi
call fcn.00413dd0
mov eax, dword [esi + 0x53c]
mov ebp, 3
cmp eax, ebp
jle 0x40dfec
mov ecx, esi
call fcn.00414550
mov edi, dword [esp + 0x24]
xor eax, eax
push 1
push edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
push 0x5de94f
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esi + 0x648]
mov edi, 0x96
cmp dword [esi + eax*4 + 0x634], 4
jne 0x40e0f4
cmp ebx, eax
jne 0x40e0f4
push eax
mov ecx, esi
call fcn.00413dd0
cmp dword [esi + 0x444], edi
jne 0x40e09a
cmp dword [esi + 0x450], edi
jne 0x40e0ec
cmp dword [esi + 0x45c], edi
jne 0x40e09a
mov eax, dword [esi + 0x648]
cmp eax, 1
jne 0x40e080
mov word [esi + 0xa16], bp
mov word [esi + 0xa22], bp
mov word [esi + 0xa2e], bp
cmp eax, 2
jne 0x40e09a
mov word [esi + 0xb06], bp
mov word [esi + 0xb12], bp
mov word [esi + 0xb1e], bp
cmp dword [esi + 0x450], edi
jne 0x40e0ec
cmp dword [esi + 0x45c], edi
jne 0x40e0ec
cmp dword [esi + 0x468], edi
jne 0x40e0ec
mov eax, dword [esi + 0x648]
cmp eax, 1
jne 0x40e0d2
mov word [esi + 0xa22], bp
mov word [esi + 0xa2e], bp
mov word [esi + 0xa3a], bp
cmp eax, 2
jne 0x40e0ec
mov word [esi + 0xb12], bp
mov word [esi + 0xb1e], bp
mov word [esi + 0xb2a], bp
push ebx
mov ecx, esi
call fcn.00413dd0
mov edi, dword [esi + ebx*4 + 0x634]
mov eax, dword [esi + 0x53c]
dec edi
mov ecx, esi
test eax, eax
jne 0x40e6c4
call fcn.0040deb0
test edi, edi
jl 0x40ef5c
mov ebp, dword [esp + 0x2c]
lea eax, [edi + edi*2]
inc edi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x18]
lea ecx, [ebp + 4]
lea eax, [esi + eax*4 + 0x448]
cmp word [eax + 6], 3
jne 0x40e1aa
cmp edi, 3
jge 0x40e1aa
cmp dword [eax - 4], 0x97
je 0x40e1aa
mov dx, word [eax + 4]
inc edi
mov word [ecx + 2], dx
mov edx, dword [eax - 4]
mov dword [ecx - 4], edx
mov dx, word [eax]
mov word [ecx], dx
mov dx, word [eax + 6]
mov word [ecx + 4], dx
add ecx, 0xc
cmp ebx, 1
mov dword [esp + 0x18], edi
jne 0x40e18c
mov edx, 0xfffffff6
mov word [eax + 0x5ce], dx
mov word [eax + 0x5c8], dx
mov dword [eax + 0x5c4], edx
jmp 0x40e1aa
cmp ebx, 2
jne 0x40e1aa
mov edx, 0xfffffff6
mov word [eax + 0x6be], dx
mov word [eax + 0x6b8], dx
mov dword [eax + 0x6b4], edx
mov dx, word [eax + 6]
cmp dx, 2
jne 0x40e1c1
mov edi, dword [esp + 0x14]
inc edi
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
test dx, dx
jne 0x40e1d9
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x40e1d5
mov edx, dword [eax - 4]
mov dword [esp + 0x1c], edx
inc dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
sub eax, 0xc
dec edx
mov dword [esp + 0x2c], edx
jne 0x40e133
cmp dword [esp + 0x1c], 0x94
jle 0x40e201
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40e201
xor edx, edx
jmp 0x40e205
mov edx, dword [esp + 0x28]
cmp edi, 3
jne 0x40e643
mov eax, dword [ebp]
test eax, eax
je 0x40e64b
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
jne 0x40e64b
cmp ecx, dword [ebp + 0x18]
jne 0x40e64b
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x53c], edi
cmp ecx, 2
jge 0x40e307
test edx, edx
jne 0x40e307
mov eax, dword [esp + 0x24]
push ebx
push eax
mov ecx, esi
call fcn.00414900
mov edi, 0x424bc0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esi + 0xc50]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bc0
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_TextOutA]
mov edi, 0x424bc0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bc0
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_TextOutA]
cmp ebx, 1
jne 0x40e2d3
mov ecx, dword [esi + 0x53c]
mov edx, dword [esi + 0x638]
sub edx, ecx
push ebx
mov dword [esi + 0x638], edx
jmp 0x40e2ed
cmp ebx, 2
jne 0x40e2f4
mov edx, dword [esi + 0x53c]
mov ecx, dword [esi + 0x63c]
sub ecx, edx
push ebx
mov dword [esi + 0x63c], ecx
mov ecx, esi
call fcn.00414700
mov eax, dword [esi + 0x53c]
mov ecx, dword [esp + 0x24]
push ebx
push eax
push ebp
push ecx
jmp 0x40eea9
cmp edx, 1
jl 0x40e484
mov eax, dword [ebp]
test eax, eax
je 0x40e484
cmp eax, dword [ebp + 0xc]
jne 0x40e484
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x40e484
mov dword [esi + 0x53c], edi
mov eax, dword [esi + ebx*4 + 0x634]
dec eax
js 0x40e3e8
lea edx, [eax + eax*2]
lea ecx, [esi + edx*4 + 0x44e]
cmp word [ecx], 0
je 0x40e360
dec eax
sub ecx, 0xc
test eax, eax
jge 0x40e34d
jmp 0x40e3e8
lea ecx, [eax + eax*2 + 0x111]
lea eax, [eax + eax*2]
mov edx, dword [esi + ecx*4]
lea eax, [esi + eax*4]
mov dword [ebp + 0x24], edx
mov ecx, dword [esi + 0x53c]
mov dx, word [eax + 0x44e]
lea ecx, [ecx + ecx*2]
mov word [ebp + ecx*4 + 8], dx
mov ecx, dword [esi + 0x53c]
mov dx, word [eax + 0x44c]
lea ecx, [ecx + ecx*2]
mov word [ebp + ecx*4 + 6], dx
mov edx, dword [esi + 0x53c]
inc edx
cmp ebx, 1
mov dword [esi + 0x53c], edx
jne 0x40e3ca
mov ecx, 0xfffffff6
mov word [eax + 0xa16], cx
mov word [eax + 0xa10], cx
mov dword [eax + 0xa0c], ecx
jmp 0x40e3e8
cmp ebx, 2
jne 0x40e3e8
mov ecx, 0xfffffff6
mov word [eax + 0xb06], cx
mov word [eax + 0xb00], cx
mov dword [eax + 0xafc], ecx
mov eax, dword [esp + 0x24]
push ebx
push eax
mov ecx, esi
mov dword [esi + 0x53c], 4
call fcn.00414900
mov edi, 0x424bb8
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esi + 0xc50]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bb8
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_TextOutA]
mov edi, 0x424bb8
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bb8
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_TextOutA]
cmp ebx, 1
jne 0x40e2d3
mov ecx, dword [esi + 0x53c]
mov edx, dword [esi + 0x638]
sub edx, ecx
push ebx
mov dword [esi + 0x638], edx
jmp 0x40e2ed
cmp ecx, 2
jl 0x40ef5c
cmp edx, 1
jge 0x40ef5c
mov eax, dword [ebp]
test eax, eax
je 0x40ef5c
cmp eax, dword [ebp + 0xc]
jne 0x40ef5c
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x40ef5c
mov dword [esi + 0x53c], 3
mov edx, dword [esi + ebx*4 + 0x634]
dec edx
js 0x40e57a
lea eax, [edx + edx*2]
lea eax, [esi + eax*4 + 0x44e]
cmp dword [esp + 0x10], 2
jge 0x40e57a
cmp word [eax], 2
jne 0x40e56e
mov ecx, dword [esi + 0x53c]
mov edi, dword [eax - 0xa]
lea ecx, [ecx + ecx*2]
mov dword [ebp + ecx*4], edi
mov ecx, dword [esi + 0x53c]
mov di, word [eax]
lea ecx, [ecx + ecx*2]
mov word [ebp + ecx*4 + 8], di
mov ecx, dword [esi + 0x53c]
mov di, word [eax - 2]
lea ecx, [ecx + ecx*2]
mov word [ebp + ecx*4 + 6], di
mov edi, dword [esi + 0x53c]
inc edi
cmp ebx, 1
mov dword [esi + 0x53c], edi
jne 0x40e54c
mov ecx, 0xfffffff6
mov word [eax + 0x5c8], cx
mov word [eax + 0x5c2], cx
mov dword [eax + 0x5be], ecx
jmp 0x40e56a
cmp ebx, 2
jne 0x40e56a
mov ecx, 0xfffffff6
mov word [eax + 0x6b8], cx
mov word [eax + 0x6b2], cx
mov dword [eax + 0x6ae], ecx
inc dword [esp + 0x10]
dec edx
sub eax, 0xc
test edx, edx
jge 0x40e4d7
mov edx, dword [esp + 0x24]
push ebx
push edx
mov ecx, esi
mov dword [esi + 0x53c], 5
call fcn.00414900
mov edi, 0x424bb0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + 0xc50]
repne scasb al, byte es:[edi]
mov eax, dword [esi + ebx*8 + 0x338]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x334]
push 0x424bb0
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_TextOutA]
mov edi, 0x424bb0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x24]
repne scasb al, byte es:[edi]
mov eax, dword [esi + ebx*8 + 0x338]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x334]
push 0x424bb0
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_TextOutA]
cmp ebx, 1
jne 0x40e60f
mov eax, dword [esi + 0x53c]
mov ecx, dword [esi + 0x638]
sub ecx, eax
push ebx
mov dword [esi + 0x638], ecx
jmp 0x40e629
cmp ebx, 2
jne 0x40e630
mov ecx, dword [esi + 0x53c]
mov edx, dword [esi + 0x63c]
sub edx, ecx
push ebx
mov dword [esi + 0x63c], edx
mov ecx, esi
call fcn.00414700
mov edx, dword [esi + 0x53c]
mov eax, dword [esp + 0x24]
push ebx
push edx
push ebp
push eax
jmp 0x40eea9
test edi, edi
je 0x40ef5c
mov ecx, dword [esp + 0x24]
push ebx
push ecx
mov ecx, esi
call fcn.00414900
mov edi, 0x424ba8
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x338]
repne scasb al, byte es:[edi]
mov eax, dword [esi + ebx*8 + 0x334]
mov ebp, dword [sym.imp.GDI32.dll_TextOutA]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + 0xc50]
push 0x424ba8
push edx
push eax
push ecx
call ebp
mov edi, 0x424ba8
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x338]
repne scasb al, byte es:[edi]
mov eax, dword [esi + ebx*8 + 0x334]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x28]
push 0x424ba8
push edx
push eax
push ecx
call ebp
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0xc
call fcn.004146b0
mov ecx, dword [esi + 0x53c]
xor eax, eax
xor ebp, ebp
lea edx, [ecx - 2]
test edx, edx
jle 0x40e709
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx]
cmp edi, dword [ecx + 0xc]
jne 0x40e6ea
cmp edi, dword [ecx + 0x18]
je 0x40e6f4
inc eax
add ecx, 0xc
cmp eax, edx
jl 0x40e6de
jmp 0x40e709
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + edx*4]
cmp eax, 0x94
mov dword [esp + 0x10], eax
jg 0x40e731
mov ecx, dword [esi + 0x538]
cmp dword [esi + ecx*4 + 0x634], 8
jge 0x40e727
mov eax, dword [esi + 0x648]
cmp ebx, eax
je 0x40e727
cmp ecx, eax
je 0x40e731
cmp dword [esi + ebx*4 + 0x634], 6
jg 0x40e780
mov eax, dword [esi + ebx*4 + 0x634]
dec eax
js 0x40e77e
lea ecx, [eax + eax*2 + 0x111]
mov edx, 3
lea ecx, [esi + ecx*4]
cmp ebp, edx
jge 0x40e763
cmp dword [ecx], 0x96
jne 0x40e757
inc ebp
dec eax
sub ecx, 0xc
test eax, eax
jge 0x40e74a
cmp ebp, edx
jl 0x40e77e
lea eax, [eax + eax*2]
lea eax, [esi + eax*4]
mov word [eax + 0x45a], dx
mov word [eax + 0x466], dx
mov word [eax + 0x472], dx
xor ebp, ebp
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40eec6
mov edx, dword [esi + ebx*4 + 0x634]
dec edx
js 0x40e809
lea ecx, [edx + edx*2]
inc edx
mov dword [esp + 0x1c], edx
lea eax, [esi + ecx*4 + 0x44e]
lea ecx, [esi + 0x354]
cmp word [eax], 3
jne 0x40e7e1
cmp ebp, 3
jge 0x40e7e1
mov edx, dword [esp + 0x10]
mov edi, dword [eax - 0xa]
cmp edi, edx
jle 0x40e7e1
mov dx, word [eax - 2]
inc ebp
mov word [ecx + 6], dx
mov edx, dword [eax - 0xa]
mov dword [ecx], edx
mov dx, word [eax - 6]
mov word [ecx + 4], dx
mov dx, word [eax]
mov word [ecx + 8], dx
add ecx, 0xc
mov di, word [eax]
cmp di, 2
jne 0x40e7ee
inc dword [esp + 0x14]
test di, di
jne 0x40e7f7
inc dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
sub eax, 0xc
dec edx
mov dword [esp + 0x1c], edx
jne 0x40e7ab
test ebp, ebp
jne 0x40e86b
mov edx, dword [esi + ebx*4 + 0x634]
dec edx
js 0x40e86b
lea eax, [ebp + ebp*2 + 0xd5]
lea ecx, [esi + eax*4]
lea eax, [edx + edx*2 + 0x111]
inc edx
lea eax, [esi + eax*4]
mov di, word [eax + 0xa]
cmp di, 0xb
je 0x40e838
cmp di, 0xd
jne 0x40e865
cmp ebp, 3
jge 0x40e865
mov edi, dword [esp + 0x10]
cmp dword [eax], edi
jle 0x40e865
mov di, word [eax + 8]
inc ebp
mov word [ecx + 6], di
mov edi, dword [eax]
mov dword [ecx], edi
mov di, word [eax + 4]
mov word [ecx + 4], di
mov di, word [eax + 0xa]
mov word [ecx + 8], di
add ecx, 0xc
sub eax, 0xc
dec edx
jne 0x40e828
mov ecx, dword [esi + 0x53c]
cmp ecx, 3
jne 0x40ea5b
cmp ebp, ecx
jne 0x40ea5b
mov eax, dword [esi + 0x354]
mov edx, dword [esi + 0x360]
cmp eax, edx
jne 0x40ea5b
cmp eax, dword [esi + 0x36c]
jne 0x40ea5b
mov edi, dword [esp + 0x2c]
xor edx, edx
lea eax, [esi + 0x35c]
lea ecx, [edi + 6]
mov ebp, dword [eax - 8]
inc edx
mov dword [ecx - 6], ebp
mov bp, word [eax]
mov word [ecx + 2], bp
mov bp, word [eax - 2]
mov word [ecx], bp
mov ebp, dword [esi + 0x53c]
add eax, 0xc
add ecx, 0xc
cmp edx, ebp
jl 0x40e8b1
mov eax, ebp
mov dword [esp + 0x28], 0
test eax, eax
jle 0x40e982
mov ebp, edi
mov edi, 0xfffffff6
mov eax, dword [esi + ebx*4 + 0x634]
dec eax
js 0x40e968
mov edx, dword [ebp]
lea ecx, [eax + eax*2 + 0x111]
lea ecx, [esi + ecx*4]
cmp edx, dword [ecx]
je 0x40e914
dec eax
sub ecx, 0xc
test eax, eax
jge 0x40e906
jmp 0x40e968
cmp ebx, 1
jne 0x40e93f
lea edx, [eax + eax*2]
lea eax, [eax + eax*2 + 0x111]
lea ecx, [esi + edx*4]
mov word [ecx + 0xa16], di
mov word [ecx + 0xa10], di
mov dword [ecx + 0xa0c], edi
mov dword [esi + eax*4], edi
jmp 0x40e968
cmp ebx, 2
jne 0x40e968
lea ecx, [eax + eax*2]
lea edx, [eax + eax*2 + 0x111]
lea ecx, [esi + ecx*4]
mov word [ecx + 0xb06], di
mov word [ecx + 0xb00], di
mov dword [ecx + 0xafc], edi
mov dword [esi + edx*4], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x53c]
inc eax
add ebp, 0xc
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x40e8ef
mov eax, dword [esp + 0x24]
push ebx
push eax
mov ecx, esi
call fcn.00414900
mov edi, 0x424bc0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esi + 0xc50]
mov ebp, dword [sym.imp.GDI32.dll_TextOutA]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bc0
push ecx
push edx
push eax
call ebp
mov edi, 0x424bc0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bc0
push ecx
push edx
push eax
call ebp
cmp ebx, 1
jne 0x40ea0b
mov ecx, dword [esi + 0x53c]
mov edx, dword [esi + 0x638]
sub edx, ecx
push ebx
mov dword [esi + 0x638], edx
jmp 0x40ea25
cmp ebx, 2
jne 0x40ea2c
mov edx, dword [esi + 0x53c]
mov ecx, dword [esi + 0x63c]
sub ecx, edx
push ebx
mov dword [esi + 0x63c], ecx
mov ecx, esi
call fcn.00414700
mov eax, dword [esi + 0x53c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push ebx
push eax
push ecx
push edx
mov ecx, esi
call fcn.004149d0
mov ecx, esi
call fcn.0040adf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0xc
cmp ecx, 4
jne 0x40ec96
cmp ebp, 3
jne 0x40ec96
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40ec96
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x40ec9a
lea ecx, [eax + 6]
lea eax, [esi + 0x35c]
mov edx, ebp
mov edi, dword [eax - 8]
add eax, 0xc
mov dword [ecx - 6], edi
mov di, word [eax - 0xc]
mov word [ecx + 2], di
mov di, word [eax - 0xe]
mov word [ecx], di
mov di, word [eax - 0x10]
mov word [ecx - 2], di
add ecx, 0xc
dec edx
jne 0x40ea95
mov edx, dword [esi + ebx*4 + 0x634]
dec edx
js 0x40eb0b
mov eax, dword [esp + 0x2c]
xor edi, edi
lea ecx, [eax + 0x2a]
lea eax, [edx + edx*2]
lea eax, [esi + eax*4 + 0x44e]
cmp edi, 1
jge 0x40eb0b
cmp word [eax], 0
jne 0x40eb03
mov ebp, dword [eax - 0xa]
inc edi
mov dword [ecx - 6], ebp
mov bp, word [eax]
mov word [ecx + 2], bp
mov bp, word [eax - 2]
mov word [ecx], bp
mov bp, word [eax - 6]
mov word [ecx - 2], bp
add ecx, 0xc
dec edx
sub eax, 0xc
test edx, edx
jge 0x40ead8
mov eax, dword [esi + 0x53c]
mov dword [esp + 0x28], 0
test eax, eax
jle 0x40ebbd
mov ebp, dword [esp + 0x2c]
mov edi, 0xfffffff6
mov eax, dword [esi + ebx*4 + 0x634]
dec eax
js 0x40eba3
mov edx, dword [ebp]
lea ecx, [eax + eax*2 + 0x111]
lea ecx, [esi + ecx*4]
cmp edx, dword [ecx]
je 0x40eb4f
dec eax
sub ecx, 0xc
test eax, eax
jge 0x40eb41
jmp 0x40eba3
cmp ebx, 1
jne 0x40eb7a
lea edx, [eax + eax*2]
lea eax, [eax + eax*2 + 0x111]
lea ecx, [esi + edx*4]
mov word [ecx + 0xa16], di
mov word [ecx + 0xa10], di
mov dword [ecx + 0xa0c], edi
mov dword [esi + eax*4], edi
jmp 0x40eba3
cmp ebx, 2
jne 0x40eba3
lea ecx, [eax + eax*2]
lea edx, [eax + eax*2 + 0x111]
lea ecx, [esi + ecx*4]
mov word [ecx + 0xb06], di
mov word [ecx + 0xb00], di
mov dword [ecx + 0xafc], edi
mov dword [esi + edx*4], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x53c]
inc eax
add ebp, 0xc
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x40eb2a
mov eax, dword [esp + 0x24]
push ebx
push eax
mov ecx, esi
call fcn.00414900
mov edi, 0x424bb8
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esi + 0xc50]
mov ebp, dword [sym.imp.GDI32.dll_TextOutA]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bb8
push ecx
push edx
push eax
call ebp
mov edi, 0x424bb8
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bb8
push ecx
push edx
push eax
call ebp
cmp ebx, 1
jne 0x40ec46
mov ecx, dword [esi + 0x53c]
mov edx, dword [esi + 0x638]
sub edx, ecx
push ebx
mov dword [esi + 0x638], edx
jmp 0x40ec60
cmp ebx, 2
jne 0x40ec67
mov edx, dword [esi + 0x53c]
mov ecx, dword [esi + 0x63c]
sub ecx, edx
push ebx
mov dword [esi + 0x63c], ecx
mov ecx, esi
call fcn.00414700
mov eax, dword [esi + 0x53c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push ebx
push eax
push ecx
push edx
mov ecx, esi
call fcn.004149d0
mov ecx, esi
call fcn.0040adf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0xc
mov eax, dword [esp + 0x2c]
cmp ecx, 5
jne 0x40eec6
cmp ebp, 3
jne 0x40eec6
cmp dword [esp + 0x14], 2
jl 0x40eec6
lea ecx, [eax + 6]
lea eax, [esi + 0x35c]
mov edx, ebp
mov edi, dword [eax - 8]
add eax, 0xc
mov dword [ecx - 6], edi
mov di, word [eax - 0xc]
mov word [ecx + 2], di
mov di, word [eax - 0xe]
mov word [ecx], di
mov di, word [eax + 0xe0]
mov word [ecx - 2], di
add ecx, 0xc
dec edx
jne 0x40ecc2
mov edx, dword [esi + ebx*4 + 0x634]
dec edx
js 0x40ed3b
mov eax, dword [esp + 0x2c]
xor edi, edi
lea ecx, [eax + 0x2a]
lea eax, [edx + edx*2]
lea eax, [esi + eax*4 + 0x44e]
cmp edi, 2
jge 0x40ed3b
cmp word [eax], 2
jne 0x40ed33
mov ebp, dword [eax - 0xa]
inc edi
mov dword [ecx - 6], ebp
mov bp, word [eax]
mov word [ecx + 2], bp
mov bp, word [eax - 2]
mov word [ecx], bp
mov bp, word [eax - 6]
mov word [ecx - 2], bp
add ecx, 0xc
dec edx
sub eax, 0xc
test edx, edx
jge 0x40ed08
mov eax, dword [esi + 0x53c]
mov dword [esp + 0x28], 0
test eax, eax
jle 0x40eded
mov ebp, dword [esp + 0x2c]
mov edi, 0xfffffff6
mov eax, dword [esi + ebx*4 + 0x634]
dec eax
js 0x40edd3
mov edx, dword [ebp]
lea ecx, [eax + eax*2 + 0x111]
lea ecx, [esi + ecx*4]
cmp edx, dword [ecx]
je 0x40ed7f
dec eax
sub ecx, 0xc
test eax, eax
jge 0x40ed71
jmp 0x40edd3
cmp ebx, 1
jne 0x40edaa
lea edx, [eax + eax*2]
lea eax, [eax + eax*2 + 0x111]
lea ecx, [esi + edx*4]
mov word [ecx + 0xa16], di
mov word [ecx + 0xa10], di
mov dword [ecx + 0xa0c], edi
mov dword [esi + eax*4], edi
jmp 0x40edd3
cmp ebx, 2
jne 0x40edd3
lea ecx, [eax + eax*2]
lea edx, [eax + eax*2 + 0x111]
lea ecx, [esi + ecx*4]
mov word [ecx + 0xb06], di
mov word [ecx + 0xb00], di
mov dword [ecx + 0xafc], edi
mov dword [esi + edx*4], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x53c]
inc eax
add ebp, 0xc
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x40ed5a
mov eax, dword [esp + 0x24]
push ebx
push eax
mov ecx, esi
call fcn.00414900
mov edi, 0x424bb0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esi + 0xc50]
mov ebp, dword [sym.imp.GDI32.dll_TextOutA]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bb0
push ecx
push edx
push eax
call ebp
mov edi, 0x424bb0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x334]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + ebx*8 + 0x338]
push 0x424bb0
push ecx
push edx
push eax
call ebp
cmp ebx, 1
jne 0x40ee76
mov ecx, dword [esi + 0x53c]
mov edx, dword [esi + 0x638]
sub edx, ecx
push ebx
mov dword [esi + 0x638], edx
jmp 0x40ee90
cmp ebx, 2
jne 0x40ee97
mov edx, dword [esi + 0x53c]
mov ecx, dword [esi + 0x63c]
sub ecx, edx
push ebx
mov dword [esi + 0x63c], ecx
mov ecx, esi
call fcn.00414700
mov eax, dword [esi + 0x53c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push ebx
push eax
push ecx
push edx
mov ecx, esi
call fcn.004149d0
mov ecx, esi
call fcn.0040adf0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0xc
mov eax, dword [esp + 0x24]
push ebx
push eax
mov ecx, esi
call fcn.00416b50
test eax, eax
je 0x40eee6
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x10
ret 0xc
mov ecx, dword [esp + 0x24]
push ebx
push ecx
mov ecx, esi
call fcn.00414900
mov edi, 0x4240fc
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x338]
repne scasb al, byte es:[edi]
mov eax, dword [esi + ebx*8 + 0x334]
mov ebp, dword [sym.imp.GDI32.dll_TextOutA]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + 0xc50]
push 0x4240fc
push edx
push eax
push ecx
call ebp
mov edi, 0x4240fc
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + ebx*8 + 0x338]
repne scasb al, byte es:[edi]
mov eax, dword [esi + ebx*8 + 0x334]
mov edi, dword [esp + 0x24]
not ecx
dec ecx
push ecx
push 0x4240fc
push edx
push eax
push edi
call ebp
push ebx
push edi
mov ecx, esi
call fcn.004158d0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0xc