Function at 0x666408
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x2c
push ebx
push esi
push edi
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], eax
mov word [esp + 0x24], 8
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ax, word [esi]
mov bx, word [esi + 0x40]
imul ax, word [edi]
mov cx, word [esi + 0x20]
imul bx, word [edi + 0x40]
mov dx, word [esi + 0x60]
imul cx, word [edi + 0x20]
imul dx, word [edi + 0x60]
mov word [esp + 0x20], ax
add ax, bx
sub word [esp + 0x20], bx
mov bx, cx
add cx, dx
sub bx, dx
mov dx, ax
movsx ebx, bx
add ax, cx
imul ebx, dword [0x6ad470]
sub dx, cx
mov word [esp + 0x1c], ax
mov word [esp + 0x18], dx
sar ebx, 8
mov ax, word [esp + 0x20]
sub bx, cx
add ax, bx
sub word [esp + 0x20], bx
mov word [esp + 0x14], ax
mov ax, word [esi + 0x10]
imul ax, word [edi + 0x10]
mov bx, word [esi + 0x70]
mov cx, word [esi + 0x30]
imul bx, word [edi + 0x70]
mov dx, word [esi + 0x50]
imul cx, word [edi + 0x30]
imul dx, word [edi + 0x50]
mov word [esp + 0x10], ax
add ax, bx
sub word [esp + 0x10], bx
mov bx, dx
add dx, cx
sub bx, cx
mov cx, ax
add ax, dx
sub cx, dx
movsx ecx, cx
mov dx, bx
add bx, word [esp + 0x10]
imul ecx, dword [0x6ad470]
movsx edx, dx
movsx ebx, bx
imul edx, dword [0x6ad474]
imul ebx, dword [0x6ad47c]
mov di, word [esp + 0x10]
movsx edi, di
sar ecx, 8
sar ebx, 8
imul edi, dword [0x6ad478]
sar edx, 8
sar edi, 8
sub di, bx
add dx, bx
sub dx, ax
sub cx, dx
add di, cx
mov word [esp + 0xc], di
mov edi, dword [esp + 0x2c]
mov si, ax
mov bx, word [esp + 0x1c]
add ax, word [esp + 0x1c]
sub bx, si
mov word [edi], ax
mov word [edi + 0x70], bx
mov ax, dx
mov bx, word [esp + 0x14]
add dx, bx
sub bx, ax
mov word [edi + 0x10], dx
mov word [edi + 0x60], bx
mov dx, cx
mov bx, word [esp + 0x20]
add cx, bx
sub bx, dx
mov word [edi + 0x20], cx
mov word [edi + 0x50], bx
mov cx, word [esp + 0xc]
mov ax, word [esp + 0x18]
add word [esp + 0xc], ax
sub ax, cx
mov bx, word [esp + 0xc]
mov word [edi + 0x40], bx
mov word [edi + 0x30], ax
add dword [esp + 0x34], 2
add dword [esp + 0x30], 2
add dword [esp + 0x2c], 2
mov ax, word [esp + 0x24]
dec ax
mov word [esp + 0x24], ax
jne 0x66642d
mov esi, dword [esp + 0x40]
mov dword [esp + 0x28], 0
mov word [esp + 0x24], 8
mov dword [esp + 0x2c], esi
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x2c]
add edi, dword [esp + 0x28]
mov edi, dword [edi]
add edi, dword [esp + 0x4c]
add dword [esp + 0x28], 4
mov ax, word [esi]
mov bx, word [esi + 8]
mov cx, word [esi + 4]
mov dx, word [esi + 0xc]
mov word [esp + 0x20], ax
add ax, bx
sub word [esp + 0x20], bx
mov bx, cx
add cx, dx
sub bx, dx
mov dx, ax
movsx ebx, bx
add ax, cx
imul ebx, dword [0x6ad470]
sub dx, cx
mov word [esp + 0x1c], ax
mov word [esp + 0x18], dx
sar ebx, 8
mov ax, word [esp + 0x20]
sub bx, cx
add ax, bx
sub word [esp + 0x20], bx
mov word [esp + 0x14], ax
mov ax, word [esi + 2]
mov bx, word [esi + 0xe]
mov cx, word [esi + 6]
mov dx, word [esi + 0xa]
mov word [esp + 0x10], ax
add ax, bx
sub word [esp + 0x10], bx
mov bx, dx
add dx, cx
sub bx, cx
mov cx, ax
add ax, dx
sub cx, dx
movsx ecx, cx
mov dx, bx
add bx, word [esp + 0x10]
imul ecx, dword [0x6ad470]
movsx edx, dx
movsx ebx, bx
imul edx, dword [0x6ad474]
imul ebx, dword [0x6ad47c]
mov si, word [esp + 0x10]
movsx esi, si
sar ecx, 8
sar ebx, 8
imul esi, dword [0x6ad478]
sar edx, 8
sar esi, 8
sub si, bx
add dx, bx
sub dx, ax
sub cx, dx
add si, cx
mov word [esp + 0xc], si
mov si, ax
mov bx, word [esp + 0x1c]
add ax, word [esp + 0x1c]
sub bx, si
mov esi, dword [esp + 0x50]
sar ax, 5
sar bx, 5
and eax, 0x3ff
and ebx, 0x3ff
mov al, byte [esi + eax]
mov bl, byte [esi + ebx]
mov byte [edi], al
mov byte [edi + 7], bl
mov ax, dx
mov bx, word [esp + 0x14]
add dx, bx
sub bx, ax
sar dx, 5
sar bx, 5
and edx, 0x3ff
and ebx, 0x3ff
mov dl, byte [esi + edx]
mov bl, byte [esi + ebx]
mov byte [edi + 1], dl
mov byte [edi + 6], bl
mov dx, cx
mov bx, word [esp + 0x20]
add cx, bx
sub bx, dx
sar cx, 5
sar bx, 5
and ecx, 0x3ff
and ebx, 0x3ff
mov cl, byte [esi + ecx]
mov bl, byte [esi + ebx]
mov byte [edi + 2], cl
mov byte [edi + 5], bl
mov cx, word [esp + 0xc]
mov ax, word [esp + 0x18]
add word [esp + 0xc], ax
sub ax, cx
sar word [esp + 0xc], 5
sar ax, 5
mov cx, word [esp + 0xc]
and ecx, 0x3ff
and eax, 0x3ff
mov bl, byte [esi + ecx]
mov al, byte [esi + eax]
mov byte [edi + 4], bl
mov byte [edi + 3], al
add dword [esp + 0x2c], 0x10
mov ax, word [esp + 0x24]
dec ax
mov word [esp + 0x24], ax
jne 0x6665d8
pop edi
pop esi
pop ebx
add esp, 0x2c
ret