Function at 0x4246a0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x84]
test eax, eax
jle 0x424db9
mov ecx, dword [ebx]
cmp dword [ecx + 0x2c], 2
je 0x424dc9
lea edx, [ebx + 0xb18]
mov eax, ebx
call fcn.004237a0
lea edx, [ebx + 0xb24]
mov eax, ebx
call fcn.004237a0
movzx edx, word [ebx + 0x96]
lea ecx, [ebx + 0x94]
mov eax, dword [ebx + 0xb1c]
cmp edx, 1
sbb ebp, ebp
add ebp, 4
cmp edx, 1
sbb edi, edi
and edi, 0x83
add edi, 7
test eax, eax
lea esi, [eax*4 + 4]
mov word [ecx + esi + 2], 0xffff
js 0x4247b6
lea eax, [ebx + esi + 0x94]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], 0xffffffff
jmp 0x424763
add word [ebx + edx*4 + 0xa7c], ax
test esi, esi
je 0x4247a1
cmp esi, edx
setne al
movzx ebp, al
movzx edi, al
add ebp, 3
add edi, 6
xor eax, eax
add ecx, 4
cmp ecx, dword [esp + 0x14]
je 0x4247b6
mov dword [esp + 0x10], edx
mov edx, esi
add eax, 1
movzx esi, word [ecx + 6]
cmp edi, eax
jle 0x424776
cmp esi, edx
je 0x424a82
cmp ebp, eax
jg 0x424735
test edx, edx
lea esi, [esi]
je 0x424a70
cmp edx, dword [esp + 0x10]
je 0x424795
add word [ebx + edx*4 + 0xa7c], 1
add word [ebx + 0xabc], 1
test esi, esi
jne 0x424741
xor eax, eax
add ecx, 4
cmp ecx, dword [esp + 0x14]
mov ebp, 3
mov edi, 0x8a
jne 0x42475d
movzx edx, word [ebx + 0x98a]
lea ecx, [ebx + 0x988]
mov eax, dword [ebx + 0xb28]
cmp edx, 1
sbb ebp, ebp
add ebp, 4
cmp edx, 1
sbb edi, edi
and edi, 0x83
add edi, 7
test eax, eax
lea esi, [eax*4 + 4]
mov word [ecx + esi + 2], 0xffff
js 0x42488d
lea eax, [ebx + esi + 0x988]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], 0xffffffff
jmp 0x42483e
add word [ebx + edx*4 + 0xa7c], ax
test esi, esi
je 0x424878
cmp esi, edx
setne al
movzx ebp, al
movzx edi, al
add ebp, 3
add edi, 6
xor eax, eax
add ecx, 4
cmp ecx, dword [esp + 0x14]
je 0x42488d
mov dword [esp + 0x10], edx
mov edx, esi
add eax, 1
movzx esi, word [ecx + 6]
cmp eax, edi
jge 0x424851
cmp esi, edx
je 0x424ab0
cmp eax, ebp
jl 0x424810
test edx, edx
je 0x424a98
cmp edx, dword [esp + 0x10]
je 0x42486c
add word [ebx + edx*4 + 0xa7c], 1
add word [ebx + 0xabc], 1
test esi, esi
jne 0x42481c
xor eax, eax
add ecx, 4
cmp ecx, dword [esp + 0x14]
mov ebp, 3
mov edi, 0x8a
jne 0x424838
lea edx, [ebx + 0xb30]
mov eax, ebx
call fcn.004237a0
cmp word [ebx + 0xaba], 0
jne 0x424fd8
cmp word [ebx + 0xa82], 0
jne 0x424fd1
cmp word [ebx + 0xab6], 0
jne 0x424fed
cmp word [ebx + 0xa86], 0
jne 0x424fe6
cmp word [ebx + 0xab2], 0
jne 0x424fdf
cmp word [ebx + 0xa8a], 0
jne 0x424fca
cmp word [ebx + 0xaae], 0
jne 0x424ff4
cmp word [ebx + 0xa8e], 0
jne 0x425017
cmp word [ebx + 0xaaa], 0
jne 0x424fbc
cmp word [ebx + 0xa92], 0
jne 0x424ffb
cmp word [ebx + 0xaa6], 0
jne 0x425002
cmp word [ebx + 0xa96], 0
jne 0x425009
cmp word [ebx + 0xaa2], 0
jne 0x425010
cmp word [ebx + 0xa9a], 0
jne 0x425025
cmp word [ebx + 0xa9e], 0
jne 0x42502c
cmp word [ebx + 0xa7e], 0
jne 0x42501e
mov ecx, 9
mov eax, 2
mov edx, dword [ebx + 0x16a8]
mov edi, dword [ebx + 0x16ac]
lea ecx, [ecx + edx + 0xe]
mov dword [ebx + 0x16a8], ecx
lea edx, [edi + 0xa]
add ecx, 0xa
shr ecx, 3
shr edx, 3
cmp ecx, edx
cmova ecx, edx
mov edi, dword [esp + 0x48]
lea esi, [edi + 4]
cmp ecx, esi
jb 0x424ac6
mov esi, dword [esp + 0x44]
test esi, esi
je 0x424ac6
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], edi
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.00424340
xor eax, eax
xor ebp, ebp
mov word [ebx + eax*4 + 0x94], bp
add eax, 1
cmp eax, 0x11e
jne 0x4249e4
xor ax, ax
nop
lea esi, [esi]
xor edi, edi
mov word [ebx + eax*4 + 0x988], di
add eax, 1
cmp eax, 0x1e
jne 0x424a00
xor al, al
xor esi, esi
mov word [ebx + eax*4 + 0xa7c], si
add eax, 1
cmp eax, 0x13
jne 0x424a14
mov ecx, dword [esp + 0x4c]
mov edx, 1
mov word [ebx + 0x494], dx
mov dword [ebx + 0x16ac], 0
mov dword [ebx + 0x16a8], 0
test ecx, ecx
mov dword [ebx + 0x16b0], 0
mov dword [ebx + 0x16a0], 0
jne 0x424d33
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 0xa
jg 0x424a8b
add word [ebx + 0xac0], 1
jmp 0x42473d
mov edx, dword [esp + 0x10]
jmp 0x424754
add word [ebx + 0xac4], 1
jmp 0x42473d
cmp eax, 0xa
jg 0x424ab9
add word [ebx + 0xac0], 1
jmp 0x424818
mov edx, dword [esp + 0x10]
jmp 0x42482f
add word [ebx + 0xac4], 1
jmp 0x424818
cmp dword [ebx + 0x88], 4
je 0x424d77
cmp edx, ecx
je 0x424d77
mov ecx, dword [ebx + 0x16bc]
cmp ecx, 0xd
jg 0x424e39
movzx edi, word [esp + 0x4c]
lea edx, [edi + 4]
movzx edx, dx
shl edx, cl
add ecx, 3
or dx, word [ebx + 0x16b8]
mov dword [ebx + 0x16bc], ecx
mov word [ebx + 0x16b8], dx
mov esi, edx
mov edx, dword [ebx + 0xb28]
cmp ecx, 0xb
lea edi, [eax + 1]
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 0xb1c]
mov dword [esp + 0x1c], edx
jle 0x424f15
sub edx, 0x100
movzx ebp, dx
mov edx, ebp
shl edx, cl
mov ecx, edx
mov edx, dword [ebx + 0x14]
or ecx, esi
mov word [ebx + 0x16b8], cx
lea esi, [edx + 1]
mov dword [ebx + 0x14], esi
mov esi, dword [ebx + 8]
mov byte [esi + edx], cl
mov edx, dword [ebx + 0x14]
mov esi, dword [ebx + 8]
lea ecx, [edx + 1]
mov dword [ebx + 0x14], ecx
movzx ecx, byte [ebx + 0x16b9]
mov byte [esi + edx], cl
mov esi, dword [ebx + 0x16bc]
mov ecx, 0x10
mov edx, ebp
sub ecx, esi
sar edx, cl
lea ecx, [esi - 0xb]
mov esi, edx
cmp ecx, 0xb
mov word [ebx + 0x16b8], dx
mov dword [ebx + 0x16bc], ecx
jle 0x424f41
movzx ebp, word [esp + 0x18]
mov edx, ebp
shl edx, cl
mov ecx, edx
mov edx, dword [ebx + 0x14]
or ecx, esi
mov word [ebx + 0x16b8], cx
lea esi, [edx + 1]
mov dword [ebx + 0x14], esi
mov esi, dword [ebx + 8]
mov byte [esi + edx], cl
mov edx, dword [ebx + 0x14]
mov esi, dword [ebx + 8]
lea ecx, [edx + 1]
mov dword [ebx + 0x14], ecx
movzx ecx, byte [ebx + 0x16b9]
mov byte [esi + edx], cl
mov esi, dword [ebx + 0x16bc]
mov ecx, 0x10
mov edx, ebp
sub ecx, esi
sar edx, cl
lea ecx, [esi - 0xb]
cmp ecx, 0xc
mov word [ebx + 0x16b8], dx
mov dword [ebx + 0x16bc], ecx
jle 0x424f63
sub eax, 3
movzx ebp, ax
mov eax, ebp
shl eax, cl
mov ecx, dword [ebx + 8]
or edx, eax
mov eax, dword [ebx + 0x14]
mov word [ebx + 0x16b8], dx
lea esi, [eax + 1]
mov dword [ebx + 0x14], esi
mov esi, ebp
mov byte [ecx + eax], dl
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 8]
lea edx, [eax + 1]
mov dword [ebx + 0x14], edx
movzx edx, byte [ebx + 0x16b9]
mov byte [ecx + eax], dl
mov eax, dword [ebx + 0x16bc]
mov ecx, 0x10
sub ecx, eax
sar esi, cl
lea ecx, [eax - 0xc]
mov word [ebx + 0x16b8], si
mov dword [ebx + 0x16bc], ecx
xor eax, eax
mov dword [esp + 0x10], edi
jmp 0x424ccc
movzx edi, word [ebx + edx*4 + 0xa7e]
add eax, 1
mov dword [esp + 0x14], edi
shl edi, cl
mov ecx, dword [ebx + 0x14]
or esi, edi
mov edi, dword [ebx + 8]
mov edx, esi
mov word [ebx + 0x16b8], si
lea ebp, [ecx + 1]
mov dword [ebx + 0x14], ebp
mov byte [edi + ecx], dl
mov ecx, dword [ebx + 0x14]
mov esi, dword [ebx + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
movzx edi, byte [ebx + 0x16b9]
mov edx, edi
mov byte [esi + ecx], dl
mov edi, dword [ebx + 0x16bc]
mov ecx, 0x10
mov esi, dword [esp + 0x14]
sub ecx, edi
sar esi, cl
cmp dword [esp + 0x10], eax
lea ecx, [edi - 0xd]
mov word [ebx + 0x16b8], si
mov dword [ebx + 0x16bc], ecx
jle 0x424cfd
cmp ecx, 0xd
movzx edx, byte [eax + 0x4bf2a0]
jg 0x424c60
movzx edx, word [ebx + edx*4 + 0xa7e]
add eax, 1
shl edx, cl
add ecx, 3
or esi, edx
cmp dword [esp + 0x10], eax
mov word [ebx + 0x16b8], si
mov dword [ebx + 0x16bc], ecx
jg 0x424ccc
mov ecx, dword [esp + 0x1c]
lea esi, [ebx + 0x94]
mov eax, ebx
mov edx, esi
lea edi, [ebx + 0x988]
call fcn.00422cf0
mov ecx, dword [esp + 0x18]
mov edx, edi
mov eax, ebx
call fcn.00422cf0
mov ecx, edi
mov edx, esi
mov eax, ebx
call fcn.00423300
jmp 0x4249e2
mov eax, dword [ebx + 0x16bc]
cmp eax, 8
jg 0x424f84
test eax, eax
jle 0x424d5c
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 8]
lea edx, [eax + 1]
mov dword [ebx + 0x14], edx
movzx edx, word [ebx + 0x16b8]
mov byte [ecx + eax], dl
xor eax, eax
mov word [ebx + 0x16b8], ax
mov dword [ebx + 0x16bc], 0
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebx + 0x16bc]
cmp ecx, 0xd
jg 0x424eae
movzx eax, word [esp + 0x4c]
add eax, 2
movzx eax, ax
shl eax, cl
add ecx, 3
or word [ebx + 0x16b8], ax
mov dword [ebx + 0x16bc], ecx
mov ecx, 0x4beda0
mov edx, 0x4bee20
mov eax, ebx
call fcn.00423300
jmp 0x4249e2
mov eax, dword [esp + 0x48]
lea ecx, [eax + 5]
xor eax, eax
mov edx, ecx
jmp 0x4249ab
xor eax, eax
mov edx, 0xf3ffc07f
test dl, 1
je 0x424de4
cmp word [ebx + eax*4 + 0x94], 0
jne 0x424fb5
add eax, 1
shr edx, 1
cmp eax, 0x20
jne 0x424dd0
cmp word [ebx + 0xb8], 0
mov edx, 1
jne 0x424e31
cmp word [ebx + 0xbc], 0
jne 0x424e31
cmp word [ebx + 0xc8], 0
je 0x424e21
jmp 0x424e31
add eax, 1
cmp eax, 0x100
je 0x424fb5
cmp word [ebx + eax*4 + 0x94], 0
je 0x424e13
mov edx, 1
mov dword [ecx + 0x2c], edx
jmp 0x4246c5
mov edi, dword [esp + 0x4c]
lea edx, [edi + 4]
movzx edx, dx
mov edi, edx
shl edi, cl
mov ecx, dword [ebx + 0x14]
mov esi, edi
mov edi, dword [ebx + 8]
or si, word [ebx + 0x16b8]
mov dword [esp + 0x10], edx
lea ebp, [ecx + 1]
mov edx, esi
mov word [ebx + 0x16b8], si
mov dword [ebx + 0x14], ebp
mov byte [edi + ecx], dl
mov ecx, dword [ebx + 0x14]
mov esi, dword [ebx + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
movzx edi, byte [ebx + 0x16b9]
mov edx, edi
mov byte [esi + ecx], dl
mov edi, dword [ebx + 0x16bc]
mov ecx, 0x10
mov edx, dword [esp + 0x10]
sub ecx, edi
sar edx, cl
lea ecx, [edi - 0xd]
mov esi, edx
mov word [ebx + 0x16b8], dx
mov dword [ebx + 0x16bc], ecx
jmp 0x424b10
mov eax, dword [esp + 0x4c]
mov esi, dword [ebx + 8]
lea edx, [eax + 2]
movzx edx, dx
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [ebx + 0x14]
or cx, word [ebx + 0x16b8]
lea edi, [eax + 1]
mov dword [ebx + 0x14], edi
mov word [ebx + 0x16b8], cx
mov byte [esi + eax], cl
mov eax, dword [ebx + 0x14]
movzx ecx, byte [ebx + 0x16b9]
mov edi, dword [ebx + 8]
lea esi, [eax + 1]
mov dword [ebx + 0x14], esi
mov byte [edi + eax], cl
mov eax, dword [ebx + 0x16bc]
mov ecx, 0x10
sub ecx, eax
sub eax, 0xd
sar edx, cl
mov word [ebx + 0x16b8], dx
mov dword [ebx + 0x16bc], eax
jmp 0x424da3
movzx edx, word [esp + 0x1c]
sub dx, 0x100
movzx edx, dx
shl edx, cl
add ecx, 5
or edx, esi
cmp ecx, 0xb
mov word [ebx + 0x16b8], dx
mov esi, edx
mov dword [ebx + 0x16bc], ecx
jg 0x424b99
movzx edx, word [esp + 0x18]
shl edx, cl
add ecx, 5
or edx, esi
cmp ecx, 0xc
mov word [ebx + 0x16b8], dx
mov dword [ebx + 0x16bc], ecx
jg 0x424bfc
lea eax, [edi - 4]
movzx eax, ax
shl eax, cl
add ecx, 4
or eax, edx
mov word [ebx + 0x16b8], ax
mov esi, eax
mov dword [ebx + 0x16bc], ecx
jmp 0x424c55
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 8]
lea edx, [eax + 1]
mov dword [ebx + 0x14], edx
movzx edx, word [ebx + 0x16b8]
mov byte [ecx + eax], dl
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 8]
lea ecx, [eax + 1]
mov dword [ebx + 0x14], ecx
movzx ecx, byte [ebx + 0x16b9]
mov byte [edx + eax], cl
jmp 0x424d5c
xor edx, edx
jmp 0x424e31
mov eax, 0xa
lea ecx, [eax + eax*2 + 3]
jmp 0x424984
mov eax, 0xd
jmp 0x424fc1
mov eax, 0x11
jmp 0x424fc1
mov eax, 0x12
jmp 0x424fc1
mov eax, 0xe
jmp 0x424fc1
mov eax, 0xf
jmp 0x424fc1
mov eax, 0x10
jmp 0x424fc1
mov eax, 0xc
jmp 0x424fc1
mov eax, 9
jmp 0x424fc1
mov eax, 8
jmp 0x424fc1
mov eax, 7
jmp 0x424fc1
mov eax, 6
jmp 0x424fc1
mov eax, 0xb
jmp 0x424fc1
mov eax, 3
jmp 0x424fc1
mov eax, 5
jmp 0x424fc1
mov eax, 4
jmp 0x424fc1