Function at 0x422390
Capabilities:
Enumerate pe sections

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x14
mov ax, word [eax]
push ebx
test ax, ax
push esi
push edi
push ebp
jl 0x42284b
mov ecx, dword [esp + 0x28]
cmp word [ecx + 0xfa], ax
jle 0x42284b
movsx esi, ax
lea esi, [esi + esi*2]
shl esi, 3
add esi, dword [ecx + 0xfe]
cmp dword [esp + 0x34], 5
jne 0x4223e4
mov ecx, dword [esp + 0x2c]
push esi
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, esi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 2]
test eax, eax
jl 0x422841
cmp dword [esi + 0x10], eax
jle 0x422841
mov esi, dword [esi + 0x14]
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add esi, edx
cmp dword [esp + 0x34], 4
jne 0x42242a
mov ecx, dword [esp + 0x2c]
push esi
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, esi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
cmp dword [esp + 0x34], 3
mov eax, dword [esp + 0x30]
jne 0x42247b
mov ax, word [eax + 6]
test ax, ax
jl 0x422471
cmp word [esi + 0xda], ax
jle 0x422471
movsx edi, ax
shl edi, 4
mov ecx, dword [esp + 0x2c]
add edi, dword [esi + 0xdc]
mov eax, dword [esp + 0x28]
push edi
push esi
push ecx
push eax
call fcn.00420b40
add esp, 0x10
mov eax, edi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
mov cx, word [eax + 0xa]
test cx, cx
jl 0x422837
cmp word [esi + 0xc8], cx
jle 0x422837
mov word [esp + 0x14], 0
cmp word [esi + 0xda], 0
jle 0x422508
movsx edx, word [esp + 0x14]
shl edx, 4
add edx, dword [esi + 0xdc]
xor di, di
cmp word [edx + 0xe], di
jle 0x4224f5
mov ebx, dword [esi + 0xd6]
mov ax, word [edx + 0xc]
add ax, di
movsx ebp, ax
lea eax, [ebp + ebp*2]
lea ebp, [ebx + eax*4]
mov ax, word [ebp + 8]
cmp ax, cx
jg 0x4224ed
movsx ebp, word [ebp + 0xa]
movsx eax, ax
add ebp, eax
movsx eax, cx
cmp ebp, eax
jg 0x422552
inc di
cmp di, word [edx + 0xe]
jl 0x4224c3
inc word [esp + 0x14]
mov ax, word [esp + 0x14]
cmp ax, word [esi + 0xda]
jl 0x4224a6
xor ax, ax
movsx edx, ax
shl edx, 4
add edx, dword [esi + 0xdc]
cmp dword [esp + 0x34], 2
jne 0x42256d
mov eax, dword [esp + 0x30]
mov ax, word [eax + 8]
test ax, ax
jl 0x422563
cmp word [esi + 0xd4], ax
jle 0x422563
mov cx, word [edx + 0xc]
cmp ax, cx
jl 0x422559
movsx eax, ax
movsx edi, word [edx + 0xe]
movsx ecx, cx
add edi, ecx
cmp edi, eax
jle 0x422559
lea eax, [eax + eax*2]
jmp 0x4225b5
mov ax, word [esp + 0x14]
jmp 0x42250b
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
xor di, di
cmp word [esi + 0xd4], di
jle 0x4225ac
mov ebx, dword [esi + 0xd6]
movsx eax, di
lea eax, [eax + eax*2]
lea ebp, [ebx + eax*4]
mov ax, word [ebp + 8]
cmp ax, cx
jg 0x4225a1
movsx ebp, word [ebp + 0xa]
movsx eax, ax
add ebp, eax
movsx eax, cx
cmp ebp, eax
jg 0x4225af
inc di
cmp di, word [esi + 0xd4]
jl 0x42257f
xor di, di
movsx ecx, di
lea eax, [ecx + ecx*2]
shl eax, 2
push edx
add eax, dword [esi + 0xd6]
push esi
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x1c]
push eax
push ecx
call fcn.00420b40
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
movsx eax, word [edx]
add esp, 0x10
mov ecx, dword [ecx + 0x24]
cmp ecx, 0x64
jne 0x4225f3
mov ecx, 0xf
add eax, 7
jmp 0x422606
mov edi, 0xf
add eax, 7
cdq
idiv edi
imul eax, ecx
mov ecx, 0x64
cdq
idiv ecx
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
add edi, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], edi
mov edx, dword [esp + 0x18]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 0x24]
cmp ecx, 0x64
jne 0x42263c
xor eax, eax
mov edx, dword [esp + 0x10]
mov ax, word [edx + 4]
mov ecx, 0xf
add eax, 7
jmp 0x422659
xor eax, eax
mov edx, dword [esp + 0x10]
mov ax, word [edx + 4]
mov ebx, 0xf
add eax, 7
cdq
idiv ebx
imul eax, ecx
mov ecx, 0x64
cdq
idiv ecx
add eax, edi
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], 2
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x20]
mov dword [ecx + 0xc], edx
jne 0x42267f
mov eax, dword [esp + 0x10]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov di, word [edx + 8]
mov bx, word [eax + 0xa]
cmp di, bx
jg 0x42282d
movsx ecx, word [edx + 0xa]
movsx eax, di
movsx edx, bx
add ecx, eax
cmp ecx, edx
jle 0x42282d
cmp di, bx
jg 0x422818
xor dx, dx
cmp word [esi + 0xce], dx
jle 0x4226f5
mov ecx, dword [esi + 0xd0]
movsx eax, dx
lea ebx, [eax + eax*2]
mov bp, word [ecx + ebx*8 + 0x12]
lea eax, [ecx + ebx*8]
cmp di, bp
jl 0x4226ea
movsx ebx, word [eax + 0x14]
movsx eax, bp
movsx ebp, di
add ebx, eax
cmp ebx, ebp
jg 0x4226f8
inc dx
cmp word [esi + 0xce], dx
jg 0x4226c7
xor dx, dx
movsx edx, dx
lea edx, [edx + edx*2]
shl edx, 3
add edx, dword [esi + 0xd0]
test byte [edx + 1], 0x80
je 0x42271e
mov ecx, dword [esp + 0x28]
test byte [ecx + 8], 8
jne 0x42271e
xor eax, eax
jmp 0x4227ee
mov eax, dword [esi + 0xca]
movsx ebx, di
cmp byte [eax + ebx], 9
jne 0x4227a4
xor dx, dx
cmp word [esi + 0xd4], dx
jle 0x422769
mov ecx, dword [esi + 0xd6]
movsx eax, dx
lea ebp, [eax + eax*2]
lea eax, [ecx + ebp*4]
mov bp, word [eax + 8]
cmp di, bp
jl 0x42275e
movsx eax, word [eax + 0xa]
movsx ebp, bp
add eax, ebp
cmp eax, ebx
jg 0x42276c
inc dx
cmp dx, word [esi + 0xd4]
jl 0x42273f
xor dx, dx
movsx ecx, dx
mov eax, dword [esi + 0xd6]
lea edx, [ecx + ecx*2]
movsx ebx, word [eax + edx*4]
push ebx
push esi
call fcn.0041ff50
add esp, 8
mov ebp, eax
sub ebp, ebx
mov ecx, 0xf
lea eax, [ebp + 7]
cdq
idiv ecx
test eax, eax
jne 0x4227ee
test ebp, ebp
je 0x4227ee
mov eax, 1
jmp 0x4227ee
mov ax, word [edx + 0x16]
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0041d150
mov ecx, dword [esi + 0xca]
add esp, 8
add eax, 0x44
mov cl, byte [ecx + ebx]
cmp cl, byte [eax + 0x12]
jb 0x4227eb
xor ebx, ebx
xor edx, edx
mov bx, word [eax + 0xc]
mov dl, byte [eax + 0x12]
add ebx, edx
xor edx, edx
mov dl, cl
cmp ebx, edx
jle 0x4227eb
sub cl, byte [eax + 0x12]
xor edx, edx
mov dl, cl
mov eax, dword [eax + 0xe]
mov eax, dword [eax + edx*4]
jmp 0x4227ee
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x10]
cmp word [edx + 8], di
jge 0x422801
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 8]
add dword [ecx], edx
inc di
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x30]
cmp word [eax + 0xa], di
jge 0x4226b5
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
add dword [ecx + 8], eax
mov eax, dword [esp + 0x10]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret